summaryrefslogtreecommitdiff
path: root/ACE/apps/JAWS/server/JAWS_Concurrency.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/apps/JAWS/server/JAWS_Concurrency.cpp')
-rw-r--r--ACE/apps/JAWS/server/JAWS_Concurrency.cpp82
1 files changed, 82 insertions, 0 deletions
diff --git a/ACE/apps/JAWS/server/JAWS_Concurrency.cpp b/ACE/apps/JAWS/server/JAWS_Concurrency.cpp
new file mode 100644
index 00000000000..4d7388d6f8a
--- /dev/null
+++ b/ACE/apps/JAWS/server/JAWS_Concurrency.cpp
@@ -0,0 +1,82 @@
+// $Id$
+
+#include "JAWS_Concurrency.h"
+
+ACE_RCSID(server, JAWS_Concurrency, "$Id$")
+
+JAWS_Concurrency_Base::JAWS_Concurrency_Base (void)
+{
+}
+
+int
+JAWS_Concurrency_Base::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
+{
+ return this->putq (mb, tv);
+}
+
+int
+JAWS_Concurrency_Base::svc (void)
+{
+ int result = 0;
+
+ for (;;)
+ {
+ ACE_Message_Block *mb;
+
+ // At this point we could set a timeout value so that the
+ // threading strategy can delete a thread if there is nothing to
+ // do. Carefully think how to implement it so you don't leave
+ // yourself with 0 threads.
+
+ result = this->getq (mb);
+ if (result == -1 || mb == 0)
+ break;
+
+ this->put_next (mb);
+ }
+ return 0;
+}
+
+JAWS_Dispatch_Policy::JAWS_Dispatch_Policy (void)
+{
+}
+
+JAWS_Dispatch_Policy::~JAWS_Dispatch_Policy (void)
+{
+}
+
+JAWS_Dispatcher::JAWS_Dispatcher (JAWS_Dispatch_Policy *policy)
+ : policy_(policy)
+{
+}
+
+JAWS_Thread_Pool_Task::JAWS_Thread_Pool_Task (long flags,
+ int nthreads,
+ int maxthreads)
+ : nthreads_ (nthreads),
+ maxthreads_ (maxthreads)
+{
+ if (this->activate (flags, nthreads) == -1)
+ ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"));
+}
+
+JAWS_Thread_Per_Task::JAWS_Thread_Per_Task (long flags, int maxthreads)
+ : flags_ (flags),
+ maxthreads_ (maxthreads)
+{
+}
+
+int
+JAWS_Thread_Per_Task::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
+{
+ const int force_active = 1;
+ const int nthreads = 1;
+
+ if (this->activate (this->flags_, nthreads, force_active) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"),
+ -1);
+
+ this->putq (mb, tv);
+
+ return 0;
+}