Skip to content

et@0.0.4

Choose a tag to compare

@github-actions github-actions released this 26 Jul 14:01
55d8909

Fix client dying with "polling terminal streams: Interrupted system call (os error 4)" (768fd8f)

The client installs a process-wide SIGWINCH handler for terminal resizes, and
poll() is never auto-restarted by SA_RESTART: any signal delivered to the
thread blocked in poll() (a window resize, SIGCONT after job control,
SIGINFO from Ctrl-T on macOS) made it fail with EINTR, which the client
treated as fatal and tore the session down mid-use.

The terminal loop now retries poll() on EINTR, recomputing the keepalive
timeout from the absolute deadline so timing stays correct. The same retry was
applied to every other interruptible poll() in the workspace: the server
session bridge, the PTY worker, the jump-host bridge, and the port-forward
acceptor (which previously exited silently on EINTR).

Pull request & contributors