class ThreadSynchronizer(object): def __init__(self): self.event_pipe = PollableEvent() self.reverse_sync_event = Event() def sync_from_main(self, callback=None): """Each call will trigger a read event (POLLIN) on event_pipe. """ self.event_pipe.set() if callback: callback() self.reverse_sync_event.wait(2) assert self.reverse_sync_event.isSet() self.reverse_sync_event.clear() assert not self.event_pipe.isSet() assert not self.reverse_sync_event.isSet() def sync_from_reactor_thread(self): self.event_pipe.clear() self.reverse_sync_event.set()
def __init__(self): self.event_pipe = PollableEvent() self.reverse_sync_event = Event()