Tecnically, a showmodal is not total blocking process, although it blocks the current flow. Internally it will call a message loop that will keep processing windows messages so the application can run.
This have always worked for years without any issue and my whole software is based on that, basically opening screens as a response to a network command. Changing to postmessage it not an option right now because of all the work involved. Basically when I´m on a ShowModal from inside a ICS event handler (for data available) (It is not called directly, but indirectly), and then it will keep processing new windows messages and those new windows messages will be socket messages that will keep processing. With the new implementation on the SSL layer it breaks everything and it does not allow windows to process any more socket messages until showmodal is finished. That is a single line that was added to SSL socket. So, the question is why this method WSocket_Synchronized_WSAASyncSelect({$IFDEF POSIX}Self,{$ENDIF} FHSocket, Handle, FMsg_WM_ASYNCSELECT, FD_WRITE or FD_CLOSE or FD_CONNECT); Is being called from TCustomSslWSocket.Do_FD_READ(var Msg: TMessage) before actually checking if SSL socket is in use? When you do this you are basically altering the functioning of the base class even if we don´t use SSL... > We have always said any processing within ICS event handlers will stop further data being processed. Calling a modal dialog is a blocking event, so I'm surprised your application ever worked, rather than it's stopped working. > A better solution would be to post a message that opens the window, so the event handler continues processing. > Not quite sure why the V8.22 change in wsocket made this change, but it was an important bug fix that preventing ICS locking up on heavy traffic, so very reluctant to change it. > I think I saw this problem in one of my own applications a few days ago, when a log window was opened, it's on my list to investigate. -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be