Skip to content

Commit fe6da8a

Browse files
add a detach method to server objects, since the order of dealloc is not defined we may need to detach before removing objects and properties to ensure we don't have activity on properties that no longer exist
1 parent 2511b0b commit fe6da8a

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

adbus/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# == Copyright: 2017-2023, CCX Technologies
22

3-
__version__ = "1.2.6"
3+
__version__ = "1.2.7"

adbus/sdbus/object.pxi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ cdef class Object:
2424
self._populate_vtable()
2525
self._register_vtable()
2626

27+
def detach(self):
28+
self._slot = sdbus_h.sd_bus_slot_unref(self._slot)
29+
2730
def __dealloc__(self):
2831
self._slot = sdbus_h.sd_bus_slot_unref(self._slot)
2932
PyMem_Free(self._vtable)

adbus/server/object.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@ def defer_property_updates(self, enable):
101101

102102
self._deferred_property_signals = {}
103103

104+
def detach(self):
105+
self.sdbus.detach()
106+
104107
def __enter__(self):
105108
self.defer_property_updates(True)
106109
return self

0 commit comments

Comments
 (0)