def __init__(self,
                 thread_factory: Optional[typing.StartableFactory] = None,
                 exit_if_empty: bool = False) -> None:
        super().__init__()
        self._is_disposed = False

        self._thread_factory: typing.StartableFactory = thread_factory or default_thread_factory
        self._thread: Optional[typing.Startable] = None
        self._condition = threading.Condition(threading.Lock())
        self._queue: PriorityQueue[ScheduledItem] = PriorityQueue()
        self._ready_list: Deque[ScheduledItem] = deque()

        self._exit_if_empty = exit_if_empty
Example #2
0
    def __init__(self, thread_factory=None, exit_if_empty=False):
        super(EventLoopScheduler, self).__init__()

        def default_factory(target):
            return threading.Thread(target=target)

        self.thread_factory = thread_factory or default_factory
        self.thread = None
        self.timer = None
        self.condition = threading.Condition(self.lock)
        self.queue = PriorityQueue()
        self.ready_list = []
        self.next_item = None

        self.exit_if_empty = exit_if_empty
Example #3
0
    def __init__(self, thread_factory=None, exit_if_empty=False):
        super(EventLoopScheduler, self).__init__()
        self.is_disposed = False

        def default_factory(target):
            t = threading.Thread(target=target)
            t.setDaemon(True)
            return t

        self.lock = config["concurrency"].RLock()
        self.thread_factory = thread_factory or default_factory
        self.thread = None
        self.timer = None
        self.condition = config["concurrency"].Condition(self.lock)
        self.queue = PriorityQueue()
        self.ready_list = []
        self.next_item = None

        self.exit_if_empty = exit_if_empty
Example #4
0
    def __init__(self, thread_factory=None, exit_if_empty=False) -> None:
        super(EventLoopScheduler, self).__init__()
        self.is_disposed = False

        def default_factory(target):
            t = threading.Thread(target=target)
            t.setDaemon(True)
            return t

        self.lock = threading.RLock()
        self.thread_factory = thread_factory or default_factory
        self.thread: Optional[threading.Thread] = None
        self.timer: Optional[threading.Timer] = None
        self.condition = threading.Condition(self.lock)
        self.queue = PriorityQueue()
        self.ready_list: List[ScheduledItem] = []
        self.next_item = None

        self.exit_if_empty = exit_if_empty
 def __init__(self):
     self._idle: bool = True
     self._queue: PriorityQueue[ScheduledItem] = PriorityQueue()
     self._lock: Lock = Lock()
     self._condition: Condition = Condition(self._lock)