CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SharedStreamPtr.h
Go to the documentation of this file.
1 #ifndef HeterogeneousCore_CUDAUtilities_SharedStreamPtr_h
2 #define HeterogeneousCore_CUDAUtilities_SharedStreamPtr_h
3 
4 #include <memory>
5 #include <type_traits>
6 
7 #include <cuda_runtime.h>
8 
9 namespace cms {
10  namespace cuda {
11  // cudaStream_t itself is a typedef for a pointer, for the use with
12  // edm::ReusableObjectHolder the pointed-to type is more interesting
13  // to avoid extra layer of indirection
14  using SharedStreamPtr = std::shared_ptr<std::remove_pointer_t<cudaStream_t>>;
15  } // namespace cuda
16 } // namespace cms
17 
18 #endif
std::shared_ptr< std::remove_pointer_t< cudaStream_t >> SharedStreamPtr