mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 17:04:54 +01:00
added method that handle for triggering callbacks
This commit is contained in:
parent
d87b1328c2
commit
0a4de5accb
1 changed files with 15 additions and 9 deletions
|
|
@ -37,6 +37,20 @@ class PublisherController:
|
|||
ref = weakref.WeakMethod(callback)
|
||||
self._reset_callback_refs.add(ref)
|
||||
|
||||
|
||||
def _trigger_callbacks(self, callbacks, *args, **kwargs):
|
||||
# Trigger reset callbacks
|
||||
to_remove = set()
|
||||
for ref in callbacks:
|
||||
callback = ref()
|
||||
if callback:
|
||||
callback()
|
||||
else:
|
||||
to_remove.add(ref)
|
||||
|
||||
for ref in to_remove:
|
||||
callbacks.remove(ref)
|
||||
|
||||
def reset(self):
|
||||
if self._in_reset:
|
||||
return
|
||||
|
|
@ -45,15 +59,7 @@ class PublisherController:
|
|||
self._reset()
|
||||
|
||||
# Trigger reset callbacks
|
||||
to_remove = set()
|
||||
for ref in self._reset_callback_refs:
|
||||
callback = ref()
|
||||
if callback:
|
||||
callback()
|
||||
else:
|
||||
to_remove.add(ref)
|
||||
for ref in to_remove:
|
||||
self._reset_callback_refs.remove(ref)
|
||||
self._trigger_callbacks(self._reset_callback_refs)
|
||||
|
||||
self._in_reset = False
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue