Hello Francois, It seems that the sole purpose of passing FComponentOptions in ASyncReceive() is for Do_FD_CLOSE() to call without wsoNoReceiveLoop. I see two places where ASyncReceive() is called. In the other place Do_FD_READ(), FComponentOptions is passed in without modification.
So I suggest we remove MySocketOptions from ASyncReceive() arguments, and add bForceLoop flag as an argument of ASyncReceive(). When bForceLoop is set by Do_FD_CLOSE(), we do not check wsoNoReceiveLoop. If bForceLoop is not set (in the case of Do_FD_READ) we use FComponentOptions directly, instead of MySocketOptions, in ASyncReceive() function. procedure TCustomWSocket.ASyncReceive(ErrCode: Word; bForceLoop : Boolean); begin ... if (not bForceLoop) and (wsoNoReceiveLoop in FComponentOptions) then break; ... end; Does this make sense to you? -- Best regards, Jack Monday, March 19, 2007, 12:51:00 AM, you wrote: >> Would you consider patching my changes into ICS? > If you look at each call to AsyncReceive, you'll see that some (Do_FD_CLOSE) > doesn't pass FComponentOptions. So your patch can't be applyed as is without > impacting the behaviour and compromising the component. > The change has to be clever to affect only Do_FD_READ. > Contribute to the SSL Effort. Visit > http://www.overbyte.be/eng/ssl.html > -- > [EMAIL PROTECTED] > Author of ICS (Internet Component Suite, freeware) > Author of MidWare (Multi-tier framework, freeware) > http://www.overbyte.be > ----- Original Message ----- > From: "Jack" <[EMAIL PROTECTED]> > To: "ICS support mailing" <twsocket@elists.org> > Sent: Sunday, March 18, 2007 9:43 PM > Subject: Re: [twsocket] Pause and Resume >> Hello Wilfried and Francois, >> >> Would you consider patching my changes into ICS? >> >> -- >> Best regards, >> Jack >> >> Sunday, March 18, 2007, 5:17:12 AM, you wrote: >> >> > Hello Jack, >> >> > This seems OK. Indeed if you set wsoNoreceivedLoop in the >> > OnDataAvailable handler it will hot have an effect when there is still >> > data to receive and with this fix it is. >> >> > Another possibility is that you set wsoNoreceivedLoop beforehand at >> > creation time of TWSocket, then you dont need the change. >> >> -- >> To unsubscribe or change your settings for TWSocket mailing list >> please goto http://www.elists.org/mailman/listinfo/twsocket >> Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be