diff options
-rw-r--r-- | ChangeLog-98a | 5 | ||||
-rw-r--r-- | ace/IOStream_T.i | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog-98a b/ChangeLog-98a index 01ff1d429e0..5298c616165 100644 --- a/ChangeLog-98a +++ b/ChangeLog-98a @@ -1,5 +1,10 @@ Fri May 1 13:52:32 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> + * ace/IOStream_T.i (recv_n): ACE_IOStream<STREAM>::eof (void) had + a subtle bug if it is called when a get operation (>>) has not + failed. Thanks to James CE Johnson <ace-users@lads.com> for + reporting this bug. + * examples/Connection/misc/Connection_Handler.cpp: Make sure to activate() each active object using THR_DETACHED so we don't run out of threading resources. Thanks to Brad Walton diff --git a/ace/IOStream_T.i b/ace/IOStream_T.i index 9ae8f0017af..fcf28fb02a6 100644 --- a/ace/IOStream_T.i +++ b/ace/IOStream_T.i @@ -1,4 +1,5 @@ /* -*- C++ -*- */ +// $Id$ template <class STREAM> ssize_t ACE_Streambuf_T<STREAM>::send (char *buf, ssize_t len) @@ -21,6 +22,8 @@ ACE_Streambuf_T<STREAM>::recv (char *buf, ACE_Time_Value * tv) { ssize_t rval = peer_->recv (buf, len, flags, tv); + if (errno == ETIME) + this->timeout_ = 1; return rval; } @@ -30,7 +33,9 @@ ACE_Streambuf_T<STREAM>::recv_n (char *buf, int flags, ACE_Time_Value *tv) { - ssize_t rval = peer_->recv_n (buf, len, flags, tv); + ssize_t rval = peer_->recv_n (buf, len, flags, tv); + if (errno == ETIME) + this->timeout_ = 1; return rval; } |