summaryrefslogtreecommitdiff
path: root/ACE/ace/ACE.cpp
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2010-08-27 19:46:10 +0000
committerSteve Huston <shuston@riverace.com>2010-08-27 19:46:10 +0000
commitdbeb734d4a61148f7b4bfca010125c7f57627a1f (patch)
tree9090676d14d98470de5e6b470c6a2c602197bddb /ACE/ace/ACE.cpp
parentee6269f3809336ea9a1185dabd82b75372cab2fc (diff)
downloadATCD-dbeb734d4a61148f7b4bfca010125c7f57627a1f.tar.gz
ChangeLogTag:Fri Aug 27 19:17:11 UTC 2010 Steve Huston <shuston@riverace.com>
Diffstat (limited to 'ACE/ace/ACE.cpp')
-rw-r--r--ACE/ace/ACE.cpp41
1 files changed, 23 insertions, 18 deletions
diff --git a/ACE/ace/ACE.cpp b/ACE/ace/ACE.cpp
index ba5bbd3a662..a3866079ab6 100644
--- a/ACE/ace/ACE.cpp
+++ b/ACE/ace/ACE.cpp
@@ -33,9 +33,9 @@ extern "C" int maxFiles;
#include "ace/ACE.inl"
#endif /* __ACE_INLINE__ */
-#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+#if defined (ACE_HAS_POLL)
# include "ace/OS_NS_poll.h"
-#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+#endif /* ACE_HAS_POLL */
// Open versioned namespace, if enabled by the user.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -2169,14 +2169,19 @@ ACE::handle_ready (ACE_HANDLE handle,
int write_ready,
int exception_ready)
{
-#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
- ACE_UNUSED_ARG (write_ready);
+#if defined (ACE_HAS_POLL)
ACE_UNUSED_ARG (exception_ready);
struct pollfd fds;
fds.fd = handle;
- fds.events = read_ready ? POLLIN : POLLOUT;
+ fds.events = read_ready ? POLLIN : 0;
+
+ if( write_ready )
+ {
+ fds.events |= POLLOUT;
+ }
+
fds.revents = 0;
int result = ACE_OS::poll (&fds, 1, timeout);
@@ -2199,7 +2204,7 @@ ACE::handle_ready (ACE_HANDLE handle,
exception_ready ? handle_set.fdset () : 0, // exception_fds.
timeout);
-#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+#endif /* ACE_HAS_POLL */
switch (result)
{
@@ -2528,7 +2533,7 @@ ACE::handle_timed_complete (ACE_HANDLE h,
{
ACE_TRACE ("ACE::handle_timed_complete");
-#if !defined (ACE_WIN32) && defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+#if !defined (ACE_WIN32) && defined (ACE_HAS_POLL)
struct pollfd fds;
@@ -2541,7 +2546,7 @@ ACE::handle_timed_complete (ACE_HANDLE h,
ACE_Handle_Set wr_handles;
rd_handles.set_bit (h);
wr_handles.set_bit (h);
-#endif /* !ACE_WIN32 && ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+#endif /* !ACE_WIN32 && ACE_HAS_POLL */
#if defined (ACE_WIN32)
// Winsock is different - it sets the exception bit for failed connect,
@@ -2561,7 +2566,7 @@ ACE::handle_timed_complete (ACE_HANDLE h,
ex_handles,
timeout);
#else
-# if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+# if defined (ACE_HAS_POLL)
int n = ACE_OS::poll (&fds, 1, timeout);
@@ -2579,7 +2584,7 @@ ACE::handle_timed_complete (ACE_HANDLE h,
wr_handles,
0,
timeout);
-# endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+# endif /* ACE_HAS_POLL */
#endif /* ACE_WIN32 */
// If we failed to connect within the time period allocated by the
@@ -2613,18 +2618,18 @@ ACE::handle_timed_complete (ACE_HANDLE h,
}
#else
if (is_tli)
-# if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+# if defined (ACE_HAS_POLL)
need_to_check = (fds.revents & POLLIN) && !(fds.revents & POLLOUT);
# else
need_to_check = rd_handles.is_set (h) && !wr_handles.is_set (h);
-# endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+# endif /* ACE_HAS_POLL */
else
-# if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+# if defined (ACE_HAS_POLL)
need_to_check = (fds.revents & POLLIN);
# else
need_to_check = true;
-# endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+# endif /* ACE_HAS_POLL */
#endif /* ACE_WIN32 */
if (need_to_check)
@@ -2686,7 +2691,7 @@ ACE::handle_timed_accept (ACE_HANDLE listener,
if (listener == ACE_INVALID_HANDLE)
return -1;
-#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+#if defined (ACE_HAS_POLL)
struct pollfd fds;
@@ -2698,13 +2703,13 @@ ACE::handle_timed_accept (ACE_HANDLE listener,
// Use the select() implementation rather than poll().
ACE_Handle_Set rd_handle;
rd_handle.set_bit (listener);
-#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+#endif /* ACE_HAS_POLL */
// We need a loop here if <restart> is enabled.
for (;;)
{
-#if defined (ACE_HAS_POLL) && defined (ACE_HAS_LIMITED_SELECT)
+#if defined (ACE_HAS_POLL)
int n = ACE_OS::poll (&fds, 1, timeout);
@@ -2720,7 +2725,7 @@ ACE::handle_timed_accept (ACE_HANDLE listener,
int n = ACE_OS::select (select_width,
rd_handle, 0, 0,
timeout);
-#endif /* ACE_HAS_POLL && ACE_HAS_LIMITED_SELECT */
+#endif /* ACE_HAS_POLL */
switch (n)
{