fix: non-blocking response drain using setblocking(False)
Validate and Test / validate-patches (push) Failing after 12s

This commit is contained in:
2026-06-24 05:23:19 -07:00
parent 88ddf740cf
commit f547201c98
+8 -6
View File
@@ -74,8 +74,6 @@ def main():
_poll.register(sock, POLLIN) _poll.register(sock, POLLIN)
router_resp = b""
active_notes = set() active_notes = set()
last_sent_params = None last_sent_params = None
pending_bytes = None pending_bytes = None
@@ -145,13 +143,17 @@ def main():
if ok: if ok:
pending_bytes = None pending_bytes = None
frames_sent += 1 frames_sent += 1
# Drain exactly one response to keep router buffer clear # Drain pending responses so router buffer stays clear
router.setblocking(False)
try: try:
router.settimeout(0.001) while True:
router.recv(4096) chunk = router.recv(4096)
except (BlockingIOError, socket.timeout, OSError): if not chunk:
break
except (BlockingIOError, OSError):
pass pass
finally: finally:
router.setblocking(True)
router.settimeout(0.01) router.settimeout(0.01)
else: else:
frames_dropped += 1 frames_dropped += 1