summaryrefslogtreecommitdiff
path: root/ace/Synch.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/Synch.h')
-rw-r--r--ace/Synch.h32
1 files changed, 31 insertions, 1 deletions
diff --git a/ace/Synch.h b/ace/Synch.h
index 0e2aba63078..1c0c5335b87 100644
--- a/ace/Synch.h
+++ b/ace/Synch.h
@@ -490,7 +490,35 @@ protected:
ACE_Null_Mutex_Guard (const ACE_Null_Mutex_Guard &) {}
};
-#if defined (ACE_HAS_THREADS) /* ACE platform supports some form of threading. */
+class ACE_TSS_Adapter
+ // = TITLE
+ // This class encapsulates a TSS object and its associated
+ // C++ destructor function. It is used by the ACE_TSS...
+ // methods (in Synch_T.cpp) in order to allow an extern
+ // "C" cleanup routine to be used. Needed by the "frigging"
+ // MVS C++ compiler.
+ //
+ // = DESCRIPTION
+ // Objects of this class are stored in thread specific
+ // storage. ts_obj_ points to the "real" object and
+ // func_ is a pointer to the C++ cleanup function for ts_obj_.
+ //
+{
+public:
+ ACE_TSS_Adapter (void *object, ACE_THR_DEST f);
+ // Initialize the adapter.
+
+ void cleanup (void);
+ // Perform the cleanup operation.
+
+//private:
+
+ void *ts_obj_;
+ // The real TS object.
+
+ ACE_THR_DEST func_;
+ // The real cleanup routine for ts_obj;
+};
class ACE_Export ACE_Event
// = TITLE
@@ -610,6 +638,8 @@ public:
// Declare the dynamic allocation hooks
};
+#if defined (ACE_HAS_THREADS) /* ACE platform supports some form of threading. */
+
class ACE_Export ACE_Thread_Mutex
// = TITLE
// ACE_Thread_Mutex wrapper (only valid for threads in the same