summaryrefslogtreecommitdiff
path: root/ACE/examples/APG/ThreadManagement/State.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/examples/APG/ThreadManagement/State.cpp')
-rw-r--r--ACE/examples/APG/ThreadManagement/State.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/ACE/examples/APG/ThreadManagement/State.cpp b/ACE/examples/APG/ThreadManagement/State.cpp
new file mode 100644
index 00000000000..f4934a2085b
--- /dev/null
+++ b/ACE/examples/APG/ThreadManagement/State.cpp
@@ -0,0 +1,39 @@
+// $Id$
+
+#include "ace/Task.h"
+
+class HA_CommandHandler : public ACE_Task_Base
+{
+public:
+ virtual int svc (void)
+ {
+ ACE_DEBUG
+ ((LM_DEBUG, ACE_TEXT ("(%t) Handler Thread running\n")));
+ return 0;
+ }
+};
+
+
+int ACE_TMAIN (int, ACE_TCHAR *[])
+{
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Main Thread running\n")));
+// Listing 1 code/ch13
+ HA_CommandHandler handler;
+ int result = handler.activate (THR_NEW_LWP |
+ THR_JOINABLE |
+ THR_SUSPENDED);
+ ACE_ASSERT (result == 0);
+
+ ACE_UNUSED_ARG (result);
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) The current thread count is %d\n"),
+ handler.thr_count ()));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%t) The group identifier is %d\n"),
+ handler.grp_id ()));
+ handler.resume ();
+ handler.wait ();
+// Listing 1
+ return 0;
+}