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

Reply via email to