Skip to content

Commit 84e8bd8

Browse files
committed
Fix spurious exception while running tests.
Due to a race condition between serve_forever and shutdown, test run logs randomly contained this exception: Exception in thread Thread-NNN (serve_forever): Traceback (most recent call last): ... ValueError: Invalid file descriptor: -1
1 parent 9065929 commit 84e8bd8

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/websockets/sync/server.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,13 @@ def serve_forever(self) -> None:
222222
223223
"""
224224
poller = selectors.DefaultSelector()
225-
poller.register(self.socket, selectors.EVENT_READ)
225+
try:
226+
poller.register(self.socket, selectors.EVENT_READ)
227+
except ValueError: # pragma: no cover
228+
# If shutdown() is called before poller.register(),
229+
# the socket is closed and poller.register() raises
230+
# ValueError: Invalid file descriptor: -1
231+
return
226232
if sys.platform != "win32":
227233
poller.register(self.shutdown_watcher, selectors.EVENT_READ)
228234

0 commit comments

Comments
 (0)