cancel.py (793B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\heronotification\cancel.py 2 import datetimeutils 3 from stacklesslib.locks import NLCondition 4 5 class CancellationToken(object): 6 7 def __init__(self): 8 self._cancelled = False 9 self._cancelled_condition = NLCondition() 10 11 @property 12 def cancelled(self): 13 return self._cancelled 14 15 def cancel(self): 16 self._cancelled = True 17 self._cancelled_condition.notify_all() 18 19 def check_cancelled(self): 20 if self._cancelled: 21 raise Cancelled() 22 23 def sleep(self, duration): 24 self._cancelled_condition.wait(timeout=datetimeutils.timedelta_to_filetime_delta(duration)) 25 self.check_cancelled() 26 27 28 class Cancelled(Exception): 29 pass