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.

Reply via email to