NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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