| 200 | } |
| 201 | |
| 202 | Mem create(cvcuda::WorkspaceMemRequirements req) |
| 203 | { |
| 204 | WorkspaceMemDestructor_t del = getMemDeleter(); |
| 205 | |
| 206 | auto evt = nvcv::util::CudaEvent::Create(); |
| 207 | void *data = allocateMem(req.size, req.alignment); |
| 208 | |
| 209 | cvcuda::WorkspaceMem wsmem = {req, data, evt.get()}; |
| 210 | |
| 211 | Mem mem(wsmem, std::move(del)); |
| 212 | evt.release(); // from now on, the event handle is managed by `mem`. |
| 213 | return mem; |
| 214 | } |
| 215 | |
| 216 | nvcv::Allocator m_alloc; |
| 217 |