Join GitHub today
Removed the SIGWINCH race and added a check for EINTR in write_all() #18
I think this removes the problem from FIXME. A check in write_all() seems worth it,
By the way, the fork-and-wait-for-syscall-to-change method may break something
This doesn't actually fix the interesting race condition. The tricky race is the one that happens if SIGWINCH happens after this point, but before we enter select(). In that case, we won't process the resize until we see further input on one side of the pty.
This patch does help things slightly, in that I believe it should mean we can't drop a SIGWINCH completely, which is an improvement.