summaryrefslogtreecommitdiff
path: root/docs/tutorials/012/task.h
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tutorials/012/task.h')
-rw-r--r--docs/tutorials/012/task.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/docs/tutorials/012/task.h b/docs/tutorials/012/task.h
new file mode 100644
index 00000000000..52dcf022b3e
--- /dev/null
+++ b/docs/tutorials/012/task.h
@@ -0,0 +1,38 @@
+
+// $Id$
+
+#ifndef TASK_H
+#define TASK_H
+
+#include "ace/Task.h"
+
+/*
+ This is our basic thread-pool Task. We have a choice of pool size
+ on the open() and the usual svc() and close() methods.
+
+ A new addition is the ACE_Barrier object. This will allow the
+ synchronization of our svc() methods so that they all start at the
+ "same" time. The normal case may allow one thread to start working
+ earlier than others. There's no real harm in it but you can get
+ better "work by thread" statistics if they start out together.
+*/
+class Task : public ACE_Task < ACE_MT_SYNCH >
+{
+public:
+
+ typedef ACE_Task < ACE_MT_SYNCH > inherited;
+
+ Task (void);
+ ~Task (void);
+
+ int open (int threads = 1);
+
+ int svc (void);
+
+ int close (u_long flags = 0);
+
+protected:
+ ACE_Barrier * barrier_;
+};
+
+#endif