From f1949efed011ef43de0879bbf009e5e9df35f379 Mon Sep 17 00:00:00 2001 From: cleeland Date: Wed, 28 Oct 2009 20:03:48 +0000 Subject: Wed Oct 28 19:49:39 UTC 2009 Chris Cleeland * ace/Select_Reactor_Base.h: * ace/Select_Reactor_Base.cpp: Changed the second recv() that is used in case of a short first read to be a recv_n(), blocking until the rest of the buffer can be received on the pipe. The problem was discovered during routine testing (Notify_Performance_Test) on VxWorks 6.7 on a P3 platform, but could occur on any platform. [Bugzilla 3754] --- ACE/ace/Select_Reactor_Base.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'ACE/ace/Select_Reactor_Base.h') diff --git a/ACE/ace/Select_Reactor_Base.h b/ACE/ace/Select_Reactor_Base.h index 20c1e536e6a..565dd2c4afb 100644 --- a/ACE/ace/Select_Reactor_Base.h +++ b/ACE/ace/Select_Reactor_Base.h @@ -180,6 +180,11 @@ public: /// Read one of the notify call on the @a handle into the /// @a buffer. This could be because of a thread trying to unblock /// the Reactor_Impl + /// + /// Return value semantics for this are: + /// -1: nothing read, fatal, unrecoverable error + /// 0: nothing read at all + /// 1: complete buffer read virtual int read_notify_pipe (ACE_HANDLE handle, ACE_Notification_Buffer &buffer); -- cgit v1.2.1