diff options
author | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-09-14 17:22:56 +0000 |
---|---|---|
committer | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-09-14 17:22:56 +0000 |
commit | b2db6507886aaacc74a4433fdca874ba8d6a5c16 (patch) | |
tree | 3f7696f30f7d49ab991f2454effc3e6a9428d9d0 /ace/Synch_T.i | |
parent | 0674f2e3bd6c3a5710f4f9ff28956d9e7f6c887b (diff) | |
download | ATCD-b2db6507886aaacc74a4433fdca874ba8d6a5c16.tar.gz |
*** empty log message ***
Diffstat (limited to 'ace/Synch_T.i')
-rw-r--r-- | ace/Synch_T.i | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/ace/Synch_T.i b/ace/Synch_T.i index d79aa6b7128..586f056e6cc 100644 --- a/ace/Synch_T.i +++ b/ace/Synch_T.i @@ -5,18 +5,40 @@ #include "ace/Thread.h" +template <class ACE_LOCKING_MECHANISM> ACE_INLINE +ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::ACE_Lock_Adapter (ACE_LOCKING_MECHANISM &lock) + : lock_ (&lock), + delete_lock_ (0) +{ +} + +template <class ACE_LOCKING_MECHANISM> ACE_INLINE +ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::ACE_Lock_Adapter (void) + : lock_ (0), + delete_lock_ (1) +{ + ACE_NEW (this->lock_, ACE_LOCKING_MECHANISM); +} + +template <class ACE_LOCKING_MECHANISM> ACE_INLINE +ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::~ACE_Lock_Adapter (void) +{ + if (this->delete_lock_) + delete this->lock_; +} + // Explicitly destroy the lock. template <class ACE_LOCKING_MECHANISM> ACE_INLINE int ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::remove (void) { - return this->lock_.remove (); + return this->lock_->remove (); } // Block the thread until the lock is acquired. template <class ACE_LOCKING_MECHANISM> ACE_INLINE int ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::acquire (void) { - return this->lock_.acquire (); + return this->lock_->acquire (); } // Conditionally acquire the lock (i.e., won't block). @@ -24,7 +46,7 @@ ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::acquire (void) template <class ACE_LOCKING_MECHANISM> ACE_INLINE int ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::tryacquire (void) { - return this->lock_.tryacquire (); + return this->lock_->tryacquire (); } // Release the lock. @@ -32,7 +54,7 @@ ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::tryacquire (void) template <class ACE_LOCKING_MECHANISM> ACE_INLINE int ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::release (void) { - return this->lock_.release (); + return this->lock_->release (); } // Block until the thread acquires a read lock. If the locking @@ -42,7 +64,7 @@ ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::release (void) template <class ACE_LOCKING_MECHANISM> ACE_INLINE int ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::acquire_read (void) { - return this->lock_.acquire_read (); + return this->lock_->acquire_read (); } // Block until the thread acquires a write lock. If the locking @@ -52,7 +74,7 @@ ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::acquire_read (void) template <class ACE_LOCKING_MECHANISM> ACE_INLINE int ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::acquire_write (void) { - return this->lock_.acquire_write (); + return this->lock_->acquire_write (); } // Conditionally acquire a read lock. If the locking mechanism @@ -61,7 +83,7 @@ ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::acquire_write (void) template <class ACE_LOCKING_MECHANISM> ACE_INLINE int ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::tryacquire_read (void) { - return this->lock_.tryacquire_read (); + return this->lock_->tryacquire_read (); } // Conditionally acquire a write lock. If the locking mechanism @@ -70,7 +92,7 @@ ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::tryacquire_read (void) template <class ACE_LOCKING_MECHANISM> ACE_INLINE int ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::tryacquire_write (void) { - return this->lock_.tryacquire_write (); + return this->lock_->tryacquire_write (); } #if defined (ACE_HAS_THREADS) |