diff --git a/dpctl/_sycl_context.pyx b/dpctl/_sycl_context.pyx index fa584e4ae2..404f27c99b 100644 --- a/dpctl/_sycl_context.pyx +++ b/dpctl/_sycl_context.pyx @@ -63,6 +63,11 @@ cdef void _context_capsule_deleter(object o): o, "SyclContextRef" ) DPCTLContext_Delete(CRef) + elif pycapsule.PyCapsule_IsValid(o, "used_SyclContextRef"): + CRef = pycapsule.PyCapsule_GetPointer( + o, "used_SyclContextRef" + ) + DPCTLContext_Delete(CRef) cdef void _init_helper(_SyclContext context, DPCTLSyclContextRef CRef): diff --git a/dpctl/_sycl_event.pyx b/dpctl/_sycl_event.pyx index 3e81a188ee..c0fbc9e6da 100644 --- a/dpctl/_sycl_event.pyx +++ b/dpctl/_sycl_event.pyx @@ -71,6 +71,11 @@ cdef void _event_capsule_deleter(object o): o, "SyclEventRef" ) DPCTLEvent_Delete(ERef) + elif pycapsule.PyCapsule_IsValid(o, "used_SyclEventRef"): + ERef = pycapsule.PyCapsule_GetPointer( + o, "used_SyclEventRef" + ) + DPCTLEvent_Delete(ERef) cdef void _init_helper(_SyclEvent event, DPCTLSyclEventRef ERef): diff --git a/dpctl/_sycl_queue.pyx b/dpctl/_sycl_queue.pyx index d76032f996..c604cda850 100644 --- a/dpctl/_sycl_queue.pyx +++ b/dpctl/_sycl_queue.pyx @@ -160,6 +160,11 @@ cdef void _queue_capsule_deleter(object o): o, "SyclQueueRef" ) DPCTLQueue_Delete(QRef) + elif pycapsule.PyCapsule_IsValid(o, "used_SyclQueueRef"): + QRef = pycapsule.PyCapsule_GetPointer( + o, "used_SyclQueueRef" + ) + DPCTLQueue_Delete(QRef) cdef class _SyclQueue: