Skip to content

Commit b713c5c

Browse files
committed
replace a few more __del__ by __dealloc__
1 parent c06dc9d commit b713c5c

File tree

2 files changed

+9
-17
lines changed

2 files changed

+9
-17
lines changed

cuda_core/cuda/core/experimental/_memory.pyx

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ from cuda.core.experimental._utils.cuda_utils cimport (
99
_check_driver_error as raise_if_driver_error,
1010
check_or_create_options,
1111
)
12-
import sys
1312

1413
from dataclasses import dataclass
1514
from typing import Optional, TypeVar, Union, TYPE_CHECKING
@@ -20,7 +19,6 @@ import cython
2019
import multiprocessing
2120
import os
2221
import platform
23-
import sys
2422
import weakref
2523
from cuda.core.experimental._dlpack import DLDeviceType, make_py_capsule
2624
from cuda.core.experimental._stream import Stream, default_stream
@@ -72,17 +70,8 @@ cdef class Buffer:
7270
self._mr = mr
7371
return self
7472

75-
def __del__(self):
76-
self._shutdown_safe_close()
77-
78-
cdef _shutdown_safe_close(self, stream: Stream = None, is_shutting_down=sys.is_finalizing):
79-
if is_shutting_down and is_shutting_down():
80-
return
81-
if self._ptr and self._mr is not None:
82-
self._mr.deallocate(self._ptr, self._size, stream)
83-
self._ptr = 0
84-
self._mr = None
85-
self._ptr_obj = None
73+
def __dealloc__(self):
74+
self.close()
8675

8776
def __reduce__(self):
8877
return Buffer.from_ipc_descriptor, (self.memory_resource, self.get_ipc_descriptor())
@@ -99,7 +88,11 @@ cdef class Buffer:
9988
The stream object to use for asynchronous deallocation. If None,
10089
the behavior depends on the underlying memory resource.
10190
"""
102-
self._shutdown_safe_close(stream, is_shutting_down=None)
91+
if self._ptr and self._mr is not None:
92+
self._mr.deallocate(self._ptr, self._size, stream)
93+
self._ptr = 0
94+
self._mr = None
95+
self._ptr_obj = None
10396

10497
@property
10598
def handle(self) -> DevicePointerT:
@@ -424,8 +417,7 @@ cdef class IPCAllocationHandle:
424417
self._handle = -1
425418
self._uuid = None
426419

427-
def __del__(self):
428-
"""Close the handle."""
420+
def __dealloc__(self):
429421
self.close()
430422

431423
def __int__(self) -> int:

cuda_core/cuda/core/experimental/_stream.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ cdef class Stream:
194194
self._device_id = device_id if device_id is not None else self._device_id
195195
return self
196196

197-
def __del__(self):
197+
def __dealloc__(self):
198198
self.close()
199199

200200
cpdef close(self):

0 commit comments

Comments
 (0)