pitrou commented on code in PR #50827:
URL: https://github.com/apache/arrow/pull/50827#discussion_r3842419329


##########
python/pyarrow/_dlpack.pxi:
##########
@@ -44,3 +44,31 @@ cdef void dlpack_pycapsule_deleter(object dltensor) noexcept:
 
     # Set the error indicator from err_type, err_value, err_traceback
     cpython.PyErr_Restore(err_type, err_value, err_traceback)
+
+
+cdef void dlpack_versioned_pycapsule_deleter(object dltensor) noexcept:
+    cdef DLManagedTensorVersioned* dlm_tensor
+    cdef PyObject* err_type
+    cdef PyObject* err_value
+    cdef PyObject* err_traceback
+
+    # Do nothing if the capsule has been consumed
+    if cpython.PyCapsule_IsValid(dltensor, "used_dltensor_versioned"):
+        return
+
+    # An exception may be in-flight, we must save it in case
+    # we create another one
+    cpython.PyErr_Fetch(&err_type, &err_value, &err_traceback)
+
+    dlm_tensor = <DLManagedTensorVersioned*>cpython.PyCapsule_GetPointer(
+        dltensor, 'dltensor_versioned')
+    if dlm_tensor == NULL:
+        cpython.PyErr_WriteUnraisable(dltensor)

Review Comment:
   (should have been `dlmtensor`)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to