1
0
mirror of https://github.com/JoelBender/bacpypes synced 2025-09-28 22:15:23 +08:00

trigger the task manager event when deferred is called to break the asyncore loop

This commit is contained in:
Joel Bender 2016-09-16 11:26:16 -04:00
parent b07033d258
commit b3fec6220e

View File

@ -79,7 +79,7 @@ def run(spin=SPIN):
# call the functions
for fn, args, kwargs in fnlist:
# if _debug: run._debug(" - call: %r %r %r", fn, args, kwargs)
# if _debug: run._debug(" - call: %r %r %r", fn, args, kwargs)
fn( *args, **kwargs)
# done with this list
@ -212,12 +212,20 @@ if hasattr(signal, 'SIGUSR1'):
@bacpypes_debugging
def deferred(fn, *args, **kwargs):
if _debug: deferred._debug("deferred %r %r %r", fn, args, kwargs)
global deferredFns
# if _debug:
# deferred._debug("deferred %r %r %r", fn, args, kwargs)
# for filename, lineno, _, _ in traceback.extract_stack()[-6:-1]:
# deferred._debug(" %s:%s" % (filename.split('/')[-1], lineno))
global deferredFns, taskManager
# append it to the list
deferredFns.append((fn, args, kwargs))
# trigger the task manager event
if taskManager and taskManager.trigger:
# if _debug: deferred._debug(" - trigger")
taskManager.trigger.set()
#
# enable_sleeping
#