X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbindings%2Fpython%2Fbt2%2Fbt2%2Ftrace.py;fp=src%2Fbindings%2Fpython%2Fbt2%2Fbt2%2Ftrace.py;h=5dcaa15c422d58f48df913aebf1a4de8717913de;hb=1114a7d5b648102b0b37febe9d0d76a97e336240;hp=b25c8b822a2b1e7a88a1e619a5e68fd2f585f0b2;hpb=7993562851b443afb3801e5bf2b88d674734808b;p=babeltrace.git diff --git a/src/bindings/python/bt2/bt2/trace.py b/src/bindings/python/bt2/bt2/trace.py index b25c8b82..5dcaa15c 100644 --- a/src/bindings/python/bt2/bt2/trace.py +++ b/src/bindings/python/bt2/bt2/trace.py @@ -178,6 +178,23 @@ class _TraceConst(object._SharedObject, collections.abc.Mapping): return utils._ListenerHandle(listener_id, self) + def remove_destruction_listener(self, listener_handle): + utils._check_type(listener_handle, utils._ListenerHandle) + + if listener_handle._obj.addr != self.addr: + raise ValueError( + 'This trace destruction listener does not match the trace object.' + ) + + if listener_handle._listener_id is None: + raise ValueError('This trace destruction listener was already removed.') + + status = native_bt.trace_remove_destruction_listener( + self._ptr, listener_handle._listener_id + ) + utils._handle_func_status(status) + listener_handle._listener_id = None + class _Trace(_TraceConst): _borrow_stream_ptr_by_id = staticmethod(native_bt.trace_borrow_stream_by_id)