Skip to content

Commit fe3e51c

Browse files
committed
refactor: Remove custom resource cleanup
Remove custom session handling for resource cleanup. Since nubificus/vaccel#193 introduced automatic resource unregistration upon release, there is no longer need for the bugprone extra bookkeeping/cleanup for registered resource sessions. PR: #31 Signed-off-by: Kostis Papazafeiropoulos <papazof@gmail.com> Reviewed-by: Anastassios Nanos <ananos@nubificus.co.uk> Approved-by: Anastassios Nanos <ananos@nubificus.co.uk>
1 parent 6f8665d commit fe3e51c

3 files changed

Lines changed: 12 additions & 32 deletions

File tree

tests/test_resource.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def test_resource_register(test_lib):
6262
ses = Session()
6363

6464
res.register(ses)
65-
assert res.is_registered(ses)
65+
assert ses.has_resource(res)
6666

6767

6868
def test_resource_unregister(test_buffer):
@@ -71,7 +71,7 @@ def test_resource_unregister(test_buffer):
7171

7272
res.register(ses)
7373
res.unregister(ses)
74-
assert not res.is_registered(ses)
74+
assert not ses.has_resource(res)
7575

7676

7777
def test_resource_register_unregister_multi(test_lib, test_buffer):
@@ -81,23 +81,23 @@ def test_resource_register_unregister_multi(test_lib, test_buffer):
8181
ses_b = Session()
8282

8383
res_a.register(ses_a)
84-
assert res_a.is_registered(ses_a)
84+
assert ses_a.has_resource(res_a)
8585
res_b.register(ses_a)
86-
assert res_b.is_registered(ses_a)
86+
assert ses_a.has_resource(res_b)
8787

8888
res_a.register(ses_b)
89-
assert res_a.is_registered(ses_b)
89+
assert ses_b.has_resource(res_a)
9090
res_b.register(ses_b)
91-
assert res_b.is_registered(ses_b)
91+
assert ses_b.has_resource(res_b)
9292

9393
res_a.sync(ses_a)
9494
res_a.sync(ses_b)
9595

9696
res_a.unregister(ses_a)
97-
assert not res_a.is_registered(ses_a)
97+
assert not ses_a.has_resource(res_a)
9898
res_b.unregister(ses_a)
99-
assert not res_b.is_registered(ses_a)
99+
assert not ses_a.has_resource(res_b)
100100
res_a.unregister(ses_b)
101-
assert not res_a.is_registered(ses_b)
101+
assert not ses_b.has_resource(res_a)
102102
res_b.unregister(ses_b)
103-
assert not res_b.is_registered(ses_b)
103+
assert not ses_b.has_resource(res_b)

vaccel/resource.py

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ def __init__(
6666
self._type = type_
6767
self._c_data = None
6868
self._c_obj_ptr = ffi.NULL
69-
self.__sessions = []
7069
super().__init__()
7170

7271
def _init_c_obj(self):
@@ -119,7 +118,6 @@ def from_buffer(
119118
inst._c_data = CBytes(inst._data)
120119
inst._c_paths = None
121120
inst._c_obj_ptr = ffi.NULL
122-
inst.__sessions = []
123121
super().__init__(inst)
124122
return inst
125123

@@ -146,7 +144,6 @@ def from_numpy(cls, data: "np.ndarray") -> "Resource":
146144
inst._c_data = CNumpyArray(inst._data)
147145
inst._c_paths = None
148146
inst._c_obj_ptr = ffi.NULL
149-
inst.__sessions = []
150147
super().__init__(inst)
151148
return inst
152149

@@ -172,13 +169,9 @@ def _del_c_obj(self):
172169

173170
def __del__(self):
174171
try:
175-
if self.id < 0:
172+
if self.id <= 0:
176173
return
177174

178-
for session in self.__sessions:
179-
if not session:
180-
continue
181-
self.unregister(session)
182175
self._del_c_obj()
183176
except NullPointerError:
184177
pass
@@ -203,17 +196,6 @@ def remote_id(self) -> int:
203196
"""
204197
return int(self._c_ptr_or_raise.remote_id)
205198

206-
def is_registered(self, session: "Session") -> bool:
207-
"""Checks if the resource is registered with the session.
208-
209-
Args:
210-
session: The session to check for registration.
211-
212-
Returns:
213-
True if the resource is registered with the session.
214-
"""
215-
return session in self.__sessions
216-
217199
def register(self, session: "Session") -> None:
218200
"""Registers the resource with a session.
219201
@@ -233,7 +215,6 @@ def register(self, session: "Session") -> None:
233215
f"Could not register resource {self.id} "
234216
f"with session {session.id}",
235217
)
236-
self.__sessions.append(session)
237218

238219
def unregister(self, session: "Session") -> None:
239220
"""Unregisters the resource from a session.
@@ -254,7 +235,6 @@ def unregister(self, session: "Session") -> None:
254235
f"Could not unregister resource {self.id} "
255236
f"from session {session.id}",
256237
)
257-
self.__sessions.remove(session)
258238

259239
def sync(self, session: "Session") -> None:
260240
"""Synchronizes the resource data to reflect any remote changes.

vaccel/session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def _del_c_obj(self):
8484

8585
def __del__(self):
8686
try:
87-
if self.id < 0:
87+
if self.id <= 0:
8888
return
8989

9090
self._del_c_obj()

0 commit comments

Comments
 (0)