diff options
Diffstat (limited to 'ACE/examples/APG/ThreadManagement/Pool.cpp')
-rw-r--r-- | ACE/examples/APG/ThreadManagement/Pool.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/ACE/examples/APG/ThreadManagement/Pool.cpp b/ACE/examples/APG/ThreadManagement/Pool.cpp new file mode 100644 index 00000000000..30ae56801a5 --- /dev/null +++ b/ACE/examples/APG/ThreadManagement/Pool.cpp @@ -0,0 +1,46 @@ +// $Id$ + +#include "ace/config-lite.h" +#if defined (ACE_HAS_THREADS) + +#include "ace/Task.h" +#include "ace/Log_Msg.h" + +// Listing 1 code/ch13 +class HA_CommandHandler : public ACE_Task<ACE_MT_SYNCH> +{ +public: + virtual int svc (void) + { + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) starting up \n"))); + ACE_Message_Block *mb; + if (this->getq (mb) == -1) + return -1; + // ... do something with the message. + return 0; + } +}; +// Listing 1 +// Listing 2 code/ch13 +int ACE_TMAIN (int, ACE_TCHAR *[]) +{ + HA_CommandHandler handler; + + // Create 4 threads. + handler.activate (THR_NEW_LWP | THR_JOINABLE, 4); + handler.wait (); + return 0; +} +// Listing 2 + +#else +#include "ace/OS_main.h" +#include "ace/OS_NS_stdio.h" + +int ACE_TMAIN (int, ACE_TCHAR *[]) +{ + ACE_OS::puts (ACE_TEXT ("This example requires threads.")); + return 0; +} + +#endif /* ACE_HAS_THREADS */ |