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

Reply via email to