summaryrefslogtreecommitdiff
path: root/docs/tutorials/017/Barrier_i.h
diff options
context:
space:
mode:
authornobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-09-23 19:31:01 +0000
committernobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-09-23 19:31:01 +0000
commit08d2cf8ae623f5aa87ad12ff30ad4ea9e40c8956 (patch)
tree7cadcc4a888a92984e1d9c9f98ae22367e360838 /docs/tutorials/017/Barrier_i.h
parentcaff940a39e93bc503c3a18ef4daf9aa0a85172b (diff)
downloadATCD-pre_avsvc_split.tar.gz
This commit was manufactured by cvs2svn to create tagpre_avsvc_split
'pre_avsvc_split'.
Diffstat (limited to 'docs/tutorials/017/Barrier_i.h')
-rw-r--r--docs/tutorials/017/Barrier_i.h66
1 files changed, 0 insertions, 66 deletions
diff --git a/docs/tutorials/017/Barrier_i.h b/docs/tutorials/017/Barrier_i.h
deleted file mode 100644
index 200f76464a3..00000000000
--- a/docs/tutorials/017/Barrier_i.h
+++ /dev/null
@@ -1,66 +0,0 @@
-// $Id$
-
-#ifndef BARRIER_H
-#define BARRIER_H
-
-#include "ace/Synch.h"
-
-/* Barrier is a simple wrapper for the ACE_Barrier synchronization
- class. The ACE_Barrier is already pretty easy to use but I thought
- I'd wrap it up to create just a bit more abstraction at the
- application level. */
-
-class Barrier
-{
-public:
- // Basic constructor and destructor. If you only need to synch the
- // start of your threads, you can safely delete your Barrier object
- // after invoking done(). Of course, you should be careful to only
- // delete the object once!
- Barrier (void);
- ~Barrier (void);
-
- // Set and get the number of threads that the barrier will manage.
- // If you add or remove threads to your application at run-time you
- // can use the mutator to reflect that change. Note, however, that
- // you can only do that from the thread which first created the
- // Barrier. (This is a limitation of my Barrier object, not the
- // ACE_Barrier.) The optional _wait parameter will cause wait() to
- // be invoked if there is already a valid threads value.
- int threads (u_int threads, int wait = 0);
- u_int threads (void);
-
- // Wait for all threads to reach the point where this is invoked.
- // Because of the snappy way in which ACE_Barrier is implemented,
- // you can invoke these back-to-back with no ill-effects.
- int wait (void);
-
- // done() will invoke wait(). Before returning though, it will
- // delete the barrier_ pointer below to reclaim some memory.
- int done (void);
-
- // Reset the owning thread of the barrier.
- void owner( ACE_thread_t _owner );
-
-protected:
- // The number of threads we're synching
- ACE_Atomic_Op<ACE_Mutex, u_int> threads_;
-
- // The ACE_Barrier that does all of the work
- ACE_Barrier *barrier_;
-
- // If we mutate the number of threads we have to do some black magic
- // to make sure there isn't a memory leak. These two member
- // variables are a part of that magic.
- ACE_Barrier *new_barrier_;
- ACE_Mutex barrier_mutex_;
-
- // The thread which created the Barrier in the first place. Only
- // this thread can change the threads_ value.
- ACE_thread_t owner_;
-
- // An internal method that constructs the barrier_ as needed.
- int make_barrier (int wait);
-};
-
-#endif /* BARRIER_H */