You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: use non-blocking stdout writes in stdio_server to prevent event loop deadlock
When a tool returns a response larger than the OS pipe buffer (64 KB on
macOS), stdout_writer blocks the entire event loop on write() because
anyio.wrap_file delegates to a synchronous write on a blocking fd.
Fix: set stdout fd to non-blocking mode and write in 4 KB chunks via
os.write(), catching BlockingIOError (EAGAIN) and yielding to the event
loop before retrying. Custom stdout overrides use the original path.
Closes#547
0 commit comments