From dca801e344928fc87ce6f335a5dbb5105c05313b Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Tue, 6 Aug 2002 18:41:25 +0000 Subject: [PATCH] fixed hang under heavy udp load --- src/cas/generic/st/casDGIntfOS.cc | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/cas/generic/st/casDGIntfOS.cc b/src/cas/generic/st/casDGIntfOS.cc index c60d1b3ae..c8a0189eb 100644 --- a/src/cas/generic/st/casDGIntfOS.cc +++ b/src/cas/generic/st/casDGIntfOS.cc @@ -417,16 +417,12 @@ void casDGIntfOS::sendCB() // attempt to flush the output buffer // flushCond = this->out.flush(); - if ( flushCond == flushProgress ) { - if (this->sendBlocked) { - this->sendBlocked = false; - } - // - // this reenables receipt of incoming frames once - // the output has been flushed when the incoming - // address is different - // - this->armRecv (); + if ( flushCond != flushProgress ) { + return; + } + + if (this->sendBlocked) { + this->sendBlocked = false; } # if defined(DEBUG) @@ -450,6 +446,12 @@ void casDGIntfOS::sendCB() // blocked. // this->processInput (); + + // + // this reenables receipt of incoming frames once + // the output has been flushed + // + this->armRecv (); } //