summaryrefslogtreecommitdiff
path: root/TAO/tao/Strategies/advanced_resource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Strategies/advanced_resource.cpp')
-rw-r--r--TAO/tao/Strategies/advanced_resource.cpp42
1 files changed, 36 insertions, 6 deletions
diff --git a/TAO/tao/Strategies/advanced_resource.cpp b/TAO/tao/Strategies/advanced_resource.cpp
index f440e60cc8e..5108af3cdd4 100644
--- a/TAO/tao/Strategies/advanced_resource.cpp
+++ b/TAO/tao/Strategies/advanced_resource.cpp
@@ -29,6 +29,7 @@
#include "ace/WFMO_Reactor.h"
#include "ace/Msg_WFMO_Reactor.h"
#include "ace/TP_Reactor.h"
+#include "ace/Dev_Poll_Reactor.h"
#include "ace/Malloc_T.h"
#include "ace/Local_Memory_Pool.h"
#include "ace/Null_Mutex.h"
@@ -164,15 +165,26 @@ TAO_Advanced_Resource_Factory::init (int argc, ACE_TCHAR** argv)
#endif /* ACE_WIN32 */
else if (ACE_OS::strcasecmp (current_arg,
ACE_TEXT("msg_wfmo")) == 0)
-#if defined(ACE_WIN32)
+#if defined(ACE_WIN32) && !defined (ACE_LACKS_MSG_WFMO)
this->reactor_type_ = TAO_REACTOR_MSGWFMO;
#else
this->report_unsupported_error (ACE_TEXT("MsgWFMO Reactor"));
-#endif /* ACE_WIN32 */
+#endif /* ACE_WIN32 && !ACE_LACKS_MSG_WFMO */
else if (ACE_OS::strcasecmp (current_arg,
ACE_TEXT("tp")) == 0)
this->reactor_type_ = TAO_REACTOR_TP;
+
+ else if (ACE_OS::strcasecmp (current_arg,
+ ACE_TEXT("dev_poll")) == 0)
+ {
+#if defined (ACE_HAS_EVENT_POLL) || defined (ACE_HAS_DEV_POLL)
+ this->reactor_type_ = TAO_REACTOR_DEV_POLL;
+#else
+ this->report_unsupported_error (ACE_TEXT ("Dev_Poll Reactor"));
+#endif /* ACE_HAS_EVENT_POLL || ACE_HAS_DEV_POLL */
+ }
+
else if (ACE_OS::strcasecmp (current_arg,
ACE_TEXT("fl")) == 0)
this->report_option_value_error (
@@ -431,16 +443,34 @@ TAO_Advanced_Resource_Factory::allocate_reactor_impl (void) const
break;
case TAO_REACTOR_WFMO:
-#if defined(ACE_WIN32) && !defined (ACE_LACKS_MSG_WFMO)
+#if defined(ACE_WIN32)
ACE_NEW_RETURN (impl, ACE_WFMO_Reactor, 0);
-#endif /* ACE_WIN32 && !ACE_LACKS_MSG_WFMO */
+#endif /* ACE_WIN32 */
break;
+#if defined(ACE_WIN32) \
+ && !defined (ACE_LACKS_MSG_WFMO) \
+ && !defined (ACE_HAS_WINCE) \
+ && !defined (ACE_HAS_PHARLAP)
case TAO_REACTOR_MSGWFMO:
-#if defined(ACE_WIN32) && !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_PHARLAP)
ACE_NEW_RETURN (impl, ACE_Msg_WFMO_Reactor, 0);
-#endif /* ACE_WIN32 && !ACE_HAS_WINCE */
break;
+#endif /* ACE_WIN32 && !ACE_LACKS_MSG_WFMO */
+
+#if defined (ACE_HAS_EVENT_POLL) || defined (ACE_HAS_DEV_POLL)
+ case TAO_REACTOR_DEV_POLL:
+ ACE_NEW_RETURN (impl,
+ ACE_Dev_Poll_Reactor (ACE::max_handles (),
+ 1, // restart
+ (ACE_Sig_Handler*)0,
+ (ACE_Timer_Queue*)0,
+ 0, // Do not disable notify
+ 0, // Allocate notify handler
+ this->reactor_mask_signals_,
+ ACE_Select_Reactor_Token::LIFO),
+ 0);
+ break;
+#endif /* ACE_HAS_EVENT_POLL || ACE_HAS_DEV_POLL */
default:
case TAO_REACTOR_TP: