summaryrefslogtreecommitdiff
path: root/examples/Threads/tss1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/Threads/tss1.cpp')
-rw-r--r--examples/Threads/tss1.cpp165
1 files changed, 0 insertions, 165 deletions
diff --git a/examples/Threads/tss1.cpp b/examples/Threads/tss1.cpp
deleted file mode 100644
index 7b0a525039d..00000000000
--- a/examples/Threads/tss1.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// TSS_Test.cpp
-//
-// = DESCRIPTION
-// This program tests thread specific storage of data. The ACE_TSS
-// wrapper transparently ensures that the objects of this class
-// will be placed in thread-specific storage. All calls on
-// ACE_TSS::operator->() are delegated to the appropriate method
-// in the Errno class. Note that each thread of control has its
-// own unique TSS object.
-//
-// = AUTHOR
-// Detlef Becker <Detlef.Becker@med.siemens.de>
-//
-// ============================================================================
-
-#include "ace/OS_main.h"
-#include "ace/Service_Config.h"
-#include "ace/Task.h"
-
-ACE_RCSID(Threads, tss1, "$Id$")
-
-#if defined (ACE_HAS_THREADS)
-
-#include "thread_specific.h"
-
-// (Sun C++ 4.2 with -O3 won't link if the following is not const.)
-static const int iterations = 100;
-
-// Static variables.
-ACE_MT (ACE_Thread_Mutex Errno::lock_);
-int Errno::flags_;
-
-// This is our thread-specific error handler...
-// (Sun C++ 4.2 with -O3 won't link if the following is static.)
-ACE_TSS<Errno> TSS_Error;
-
-#if defined (ACE_HAS_THREADS)
- typedef ACE_TSS_Guard<ACE_Thread_Mutex> GUARD;
-#else
- typedef ACE_Guard<ACE_Null_Mutex> GUARD;
-#endif /* ACE_HAS_THREADS */
-
-// Keeps track of whether Tester::close () has started.
-// (Sun C++ 4.2 with -O3 won't link if the following is static.)
-int close_started = 0;
-
-template <ACE_SYNCH_DECL>
-class Tester: public ACE_Task<ACE_SYNCH_USE>
-{
-public:
- Tester (void) {}
- ~Tester (void) {}
-
- virtual int svc (void);
-
- virtual int open (void *args = 0);
- // Activate the thread.
-
- virtual int close (u_long args = 0);
-};
-
-template <ACE_SYNCH_DECL> int
-Tester<ACE_SYNCH_USE>::svc (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) svc: setting error code to 1\n"));
- TSS_Error->error (1);
-
- for (int i = 0; i < iterations; i++)
- // Print out every tenth iteration.
- if ((i % 10) == 1)
- ACE_DEBUG ((LM_DEBUG,
- "(%t) error = %d\n",
- TSS_Error->error ()));
- this->close ();
-
- return 0;
-}
-
-template <ACE_SYNCH_DECL> int
-Tester<ACE_SYNCH_USE>::open (void *)
-{
- // Make this an Active Object.
- return this->activate ();
-}
-
-template <ACE_SYNCH_DECL>
-int Tester<ACE_SYNCH_USE>::close (u_long)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%t) close running\n"));
- close_started = 1;
- ACE_DEBUG ((LM_DEBUG,
- "(%t) close: setting error code to 7\n"));
- TSS_Error->error (7);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) close: error = %d\n",
- TSS_Error->error ()));
- //close_started = 0;
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_TSS<Errno>;
-template class Tester<ACE_MT_SYNCH>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_TSS<Errno>
-#pragma instantiate Tester<ACE_MT_SYNCH>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-int
-ACE_TMAIN (int, ACE_TCHAR *[])
-{
- Tester<ACE_MT_SYNCH> tester;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) main: setting error code to 3\n"));
- TSS_Error->error (3);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) main: error = %d\n",
- TSS_Error->error ()));
-
- // Spawn off a thread and make test an Active Object.
- tester.open ();
-
- // Keep looping until <Tester::close> is called.
- for (int i = 0; !close_started; i++) {
- // while (!close_started)
- if ((i % 100) == 0) {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) error = %d\n",
- TSS_Error->error ()));
- }
- }
- ACE_DEBUG ((LM_DEBUG,
- "(%t) main: setting error code to 4\n"));
- TSS_Error->error (4);
- ACE_DEBUG ((LM_DEBUG,
- "(%t) main: error = %d\n",
- TSS_Error->error ()));
-
- // Keep looping until <Tester::close> finishes.
- while (close_started != 0)
- ACE_DEBUG ((LM_DEBUG,
- "(%t) error = %d\n",
- TSS_Error->error ()));
- return 0;
-}
-#else
-int
-ACE_TMAIN (int, ACE_TCHAR *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "ACE doesn't support support threads on this platform (yet)\n"),
- -1);
-}
-#endif /* ACE_HAS_THREADS */