Behavioral change of shutdown() in Linux > 6.1.32 #493
Labels
Element: Operating System
Issues related to specific Operating Systems
Element: Socket Stacks
Issues related to OS socket APIs, TIdStack and TIdSocketList descedants, etc
Element: TCP
Issues related to TCP handling, TIdTCPClient and TIdTCPServer descendants, etc
Status: Completed
Issue has been closed, no further work needed
Type: Maintenance
Issue is proposing maintenance of existing code
Milestone
Apparently, a recent change in Linux now prevents one thread from disconnecting a TCP socket if other threads are waiting on the socket!
This does not bode well for Indy, which expects to be able to shutdown/close a TCP socket while threads are blocked on socket I/O operations. For #3 and #491, this change means that using
connect()
in non-blocking mode now becomes more important, otherwiseConnectTimeout
becomes useless as a blockedconnect()
will no longer unblock whenshutdown()
is called.Need to review if other socket functions now have potential problems introduced by this change in behavior.
The text was updated successfully, but these errors were encountered: