50047572672b6126eca644dd5b60be36014f418d
1 from threading
import Lock
5 # this is a sort of "multiplexer" i.e. it manages callbacks from threads
6 # and redirect them to the main thread (this prevents deadlocks)
11 taskMgr
.add(self
.process_callbacks
, 'processing callbacks')
13 def add_cb(self
, func
, args
=None):
15 with self
.lock
: self
.callbacks
+= [(func
, args
)]
17 def process_callbacks(self
, task
):
19 callbacks
= self
.callbacks
[:]
21 for func
, args
in callbacks
: func(*args
)