tools (async_trigger): use utils.asDeferred for async triggers:

A corouting or blocking method can now be used for async triggers.
This commit is contained in:
Goffi 2020-11-12 14:53:15 +01:00
commit 2d3d30d42b

View file

@ -19,7 +19,8 @@
"""Misc usefull classes"""
from sat.tools import trigger as sync_trigger
from . import trigger as sync_trigger
from . import utils
from twisted.internet import defer
class TriggerManager(sync_trigger.TriggerManager):
@ -45,7 +46,7 @@ class TriggerManager(sync_trigger.TriggerManager):
for priority, trigger in self.__triggers[point_name]:
try:
cont = yield trigger(*args, **kwargs)
cont = yield utils.asDeferred(trigger, *args, **kwargs)
if can_cancel and not cont:
defer.returnValue(False)
except sync_trigger.SkipOtherTriggers: