summaryrefslogtreecommitdiff
path: root/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp')
-rw-r--r--ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp b/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp
new file mode 100644
index 00000000000..94eadc2c09c
--- /dev/null
+++ b/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp
@@ -0,0 +1,54 @@
+// $Id$
+
+#ifndef DSRT_DISPATCHER_IMPL_T_CPP
+#define DSRT_DISPATCHER_IMPL_T_CPP
+
+#include "DSRT_Dispatcher_Impl_T.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "DSRT_Dispatcher_Impl_T.inl"
+#endif /* __ACE_INLINE__ */
+
+namespace Kokyu
+{
+
+template <class DSRT_Scheduler_Traits>
+DSRT_Dispatcher_Impl<DSRT_Scheduler_Traits>::
+DSRT_Dispatcher_Impl (ACE_Sched_Params::Policy sched_policy,
+ int sched_scope)
+ : sched_policy_ (sched_policy),
+ sched_scope_ (sched_scope),
+ min_prio_ (ACE_Sched_Params::priority_min
+ (sched_policy_,
+ sched_scope)),
+ max_prio_ (ACE_Sched_Params::priority_max
+ (sched_policy_,
+ sched_scope)),
+ executive_prio_ (max_prio_),
+ blocked_prio_ (ACE_Sched_Params::previous_priority
+ (sched_policy_,
+ max_prio_,
+ sched_scope)),
+ inactive_prio_ (min_prio_),
+ active_prio_ (ACE_Sched_Params::next_priority
+ (sched_policy_,
+ min_prio_)),
+ shutdown_flagged_ (0),
+ non_rt_thr_flags_ (THR_NEW_LWP | THR_JOINABLE | THR_BOUND),
+ curr_scheduled_thr_handle_ (0)
+{
+ if (sched_policy_ == ACE_SCHED_FIFO)
+ rt_thr_flags_ = non_rt_thr_flags_ | THR_SCHED_FIFO;
+ else if (sched_policy_ == ACE_SCHED_RR)
+ rt_thr_flags_ = non_rt_thr_flags_ | THR_SCHED_RR;
+}
+
+//virtual - so don't inline
+template <class DSRT_Scheduler_Traits>
+DSRT_Dispatcher_Impl<DSRT_Scheduler_Traits>::~DSRT_Dispatcher_Impl ()
+{
+}
+
+}
+
+#endif /* DSRT_DISPATCHER_IMPL_T_CPP */