[Vortex] Flushing ANS on a channel

Skye skye at F4.ca
Thu Oct 23 21:30:24 CEST 2008



Francis Brosnan Blazquez wrote:
> 
>> I'm seeing in practice though, the the listener is receiving a variable
>> number of ANS messages when the initiator pumps out the ANS messages as
>> fast
>> as it can.  I assumed vortex_channel_close() would block until all queued
>> messages were sent, but maybe that's not the case?  
> 
> Sure, that's the case. Calling to vortex_channel_close causes to wait
> for all pending replies to be received and pending replies to be sent
> (see __vortex_channel_close).
> 

Actually, it doesn't seem to be.  If I send ANS as fast as I can and then
send NUL like this:

for (i=0..100,000)
   send_rpy_ans
send_rpy_nul
close_channel

Then the listener only receives about 12,000 ANS frames.. it loses over 80%
!!

However, if I drain the queue before sending the NUL, 100% of the frames are
received:

for (i=0..100,000)
    send_rpy_ans
while (not channel_is_empty)
    usleep(50)
send_rpy_nul
close_channel

Is this a bug or am I misunderstanding?

Thanks,
Skye

PS: increasing the window size improved performance dramatically, thanks for
the tip
-- 
View this message in context: http://n2.nabble.com/Flushing-ANS-on-a-channel-tp1365841p1369474.html
Sent from the Vortex -- Open Source BEEP implementation mailing list archive at Nabble.com.



More information about the Vortex mailing list