Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions tests/test_resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def test_resource_register(test_lib):
ses = Session()

res.register(ses)
assert res.is_registered(ses)
assert ses.has_resource(res)


def test_resource_unregister(test_buffer):
Expand All @@ -71,7 +71,7 @@ def test_resource_unregister(test_buffer):

res.register(ses)
res.unregister(ses)
assert not res.is_registered(ses)
assert not ses.has_resource(res)


def test_resource_register_unregister_multi(test_lib, test_buffer):
Expand All @@ -81,23 +81,23 @@ def test_resource_register_unregister_multi(test_lib, test_buffer):
ses_b = Session()

res_a.register(ses_a)
assert res_a.is_registered(ses_a)
assert ses_a.has_resource(res_a)
res_b.register(ses_a)
assert res_b.is_registered(ses_a)
assert ses_a.has_resource(res_b)

res_a.register(ses_b)
assert res_a.is_registered(ses_b)
assert ses_b.has_resource(res_a)
res_b.register(ses_b)
assert res_b.is_registered(ses_b)
assert ses_b.has_resource(res_b)

res_a.sync(ses_a)
res_a.sync(ses_b)

res_a.unregister(ses_a)
assert not res_a.is_registered(ses_a)
assert not ses_a.has_resource(res_a)
res_b.unregister(ses_a)
assert not res_b.is_registered(ses_a)
assert not ses_a.has_resource(res_b)
res_a.unregister(ses_b)
assert not res_a.is_registered(ses_b)
assert not ses_b.has_resource(res_a)
res_b.unregister(ses_b)
assert not res_b.is_registered(ses_b)
assert not ses_b.has_resource(res_b)
22 changes: 1 addition & 21 deletions vaccel/resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ def __init__(
self._type = type_
self._c_data = None
self._c_obj_ptr = ffi.NULL
self.__sessions = []
super().__init__()

def _init_c_obj(self):
Expand Down Expand Up @@ -119,7 +118,6 @@ def from_buffer(
inst._c_data = CBytes(inst._data)
inst._c_paths = None
inst._c_obj_ptr = ffi.NULL
inst.__sessions = []
super().__init__(inst)
return inst

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

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

def __del__(self):
try:
if self.id < 0:
if self.id <= 0:
return

for session in self.__sessions:
if not session:
continue
self.unregister(session)
self._del_c_obj()
except NullPointerError:
pass
Expand All @@ -203,17 +196,6 @@ def remote_id(self) -> int:
"""
return int(self._c_ptr_or_raise.remote_id)

def is_registered(self, session: "Session") -> bool:
"""Checks if the resource is registered with the session.

Args:
session: The session to check for registration.

Returns:
True if the resource is registered with the session.
"""
return session in self.__sessions

def register(self, session: "Session") -> None:
"""Registers the resource with a session.

Expand All @@ -233,7 +215,6 @@ def register(self, session: "Session") -> None:
f"Could not register resource {self.id} "
f"with session {session.id}",
)
self.__sessions.append(session)

def unregister(self, session: "Session") -> None:
"""Unregisters the resource from a session.
Expand All @@ -254,7 +235,6 @@ def unregister(self, session: "Session") -> None:
f"Could not unregister resource {self.id} "
f"from session {session.id}",
)
self.__sessions.remove(session)

def sync(self, session: "Session") -> None:
"""Synchronizes the resource data to reflect any remote changes.
Expand Down
2 changes: 1 addition & 1 deletion vaccel/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ def _del_c_obj(self):

def __del__(self):
try:
if self.id < 0:
if self.id <= 0:
return

self._del_c_obj()
Expand Down