A deadlock could occur if you called conn_close() while the remote was sending
a buttload of data. If the input queue filled up before the socket was closed, the input queue could be stuck waiting for the ring buffer to drain while conn_close() is stuck waiting for the input thread to stop. We now consume data from the input buffer while waiting for the input thread to stop.
Showing
- src/syncterm/conn_pty.c 4 additions, 1 deletionsrc/syncterm/conn_pty.c
- src/syncterm/conn_telnet.c 5 additions, 1 deletionsrc/syncterm/conn_telnet.c
- src/syncterm/modem.c 4 additions, 1 deletionsrc/syncterm/modem.c
- src/syncterm/rlogin.c 5 additions, 1 deletionsrc/syncterm/rlogin.c
- src/syncterm/ssh.c 5 additions, 1 deletionsrc/syncterm/ssh.c
- src/syncterm/syncterm.c 2 additions, 0 deletionssrc/syncterm/syncterm.c
Loading
Please register or sign in to comment