Skip to content

Commit 1615817

Browse files
committed
Make EventLoop.time() work even after the loop is closed
1 parent 71f486e commit 1615817

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

src/async_solipsism/loop.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,16 @@
3030
class EventLoop(asyncio.selector_events.BaseSelectorEventLoop):
3131
def __init__(self):
3232
super().__init__(selector=selector.Selector())
33-
self._selector = selector.Selector()
3433
self._clock_resolution = self._selector.clock.resolution
3534
# Map from (host, port) pair to ListenSocket
3635
self.__listening_sockets = {}
3736
self.__next_port = 1
37+
# Copy this so that time() works even when after the event loop is
38+
# closed (which clears _selector).
39+
self.__clock = self._selector.clock
3840

3941
def time(self):
40-
return self._selector.clock.time()
42+
return self.__clock.time()
4143

4244
def call_soon_threadsafe(self, callback, *args, context=None):
4345
if self._thread_id == threading.get_ident():

0 commit comments

Comments
 (0)