Henrik,
I believe our programmer here traced back the problem of client
disconnects to the value of wr-res which becomes set to -1 in this case.
So the condition in the either statement was simply changed to include it.
if not ud/result-written
[
wr-res: write-msg ud/result o/port
either any [logic? wr-res wr-res = -1]
[
ud/result-written: true
clear-buffer/upto o/port web-clearies ud/request-data
stop o/port
]
[
remove/part ud/result wr-res
]; either
return
]
Hope this helps.
Louis.
Henrik Mikael Kristensen wrote:
> On 23/04/2007, at 18:59, Gregg Irwin wrote:
>
>
>> Hi Henrik,
>>
>>
>>>> I don't. It's a direct/no-wait port already. We've adjusted the
>>>> timeout down as well, but I don't want to set it too low, since some
>>>> of these connections are cell-based, and I'm afraid we may lose them
>>>> if we do that.
>>>>
>> HMK> Gregg, what was your solution? I'm sitting here studying the
>> Rugby
>> HMK> code. Rugby has a problem with that if you have multiple clients
>> HMK> hooked to a Rugby server and one client abrubtly quits, the
>> entire
>> HMK> Rugby server hangs, because it keeps trying to read an open
>> port with
>> HMK> no data.
>>
>> HMK> Do you use a quick timeout to close the port or what?
>>
>> I never did solve it under Rugby. v2 of the software, in development
>> now, uses reb-services. The existing Rugby version (in use for more
>> than 4 years now I think) still hangs once in a while; sometimes hard,
>> and sometimes things still respond, just slowly.
>>
>
> Thanks, I've been working with fixing Rugby bugs for a couple of
> months, among that solving at least one hang, and now am tracking
> down two other hangs, one of which is quite random, but fixable while
> the other might be a port bug in the Rebol kernel itself and so
> requires a workaround.
>
> Just so that everyone else who use Rugby will know. :-)
>
> --
> Regards,
> Henrik Mikael Kristensen
>
>
>
--
To unsubscribe from the list, just send an email to
lists at rebol.com with unsubscribe as the subject.