From 2d3d30d42bc639b7084aea684a29310d1928317a Mon Sep 17 00:00:00 2001 From: Goffi Date: Thu, 12 Nov 2020 14:53:15 +0100 Subject: [PATCH] tools (async_trigger): use `utils.asDeferred` for async triggers: A corouting or blocking method can now be used for async triggers. --- sat/tools/async_trigger.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sat/tools/async_trigger.py b/sat/tools/async_trigger.py index 04555e92..0a07be30 100644 --- a/sat/tools/async_trigger.py +++ b/sat/tools/async_trigger.py @@ -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: