diff options
Diffstat (limited to 'ace/RW_Process_Mutex.h')
-rw-r--r-- | ace/RW_Process_Mutex.h | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/ace/RW_Process_Mutex.h b/ace/RW_Process_Mutex.h deleted file mode 100644 index 266938dab4f..00000000000 --- a/ace/RW_Process_Mutex.h +++ /dev/null @@ -1,108 +0,0 @@ -/* -*- C++ -*- */ - -//============================================================================= -/** - * @file RW_Process_Mutex.h - * - * $Id$ - * - * @author Doug Schmidt - */ -//============================================================================= - - -#ifndef ACE_RW_PROCESS_MUTEX_H -#define ACE_RW_PROCESS_MUTEX_H -#include "ace/pre.h" - -#include "ace/File_Lock.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -/** - * @class ACE_RW_Process_Mutex - * - * @brief Wrapper for readers/writer locks that exist across processes. - * - * Note that because this class uses the - * <ACE_File_Lock> as its implementation it only can be reliably - * used between separate processes, rather than threads in the - * same process. This isn't a limitation of ACE, it's simply - * the file lock semantics on UNIX and Win32. - */ -class ACE_Export ACE_RW_Process_Mutex -{ -public: - /// Create a readers/writer <Process_Mutex>, passing in the optional - /// <name>. - ACE_RW_Process_Mutex (const ACE_TCHAR *name = 0, - int flags = O_CREAT|O_RDWR); - - ~ACE_RW_Process_Mutex (void); - - /** - * Explicitly destroy the mutex. Note that only one thread should - * call this method since it doesn't protect against race - * conditions. - */ - int remove (void); - - /// Acquire lock ownership (wait on queue if necessary). - int acquire (void); - - /** - * Conditionally acquire lock (i.e., don't wait on queue). Returns - * -1 on failure. If we "failed" because someone else already had - * the lock, <errno> is set to <EBUSY>. - */ - int tryacquire (void); - - /// Release lock and unblock a thread at head of queue. - int release (void); - - /// Acquire lock ownership (wait on queue if necessary). - int acquire_read (void); - - /// Acquire lock ownership (wait on queue if necessary). - int acquire_write (void); - - /** - * Conditionally acquire a lock (i.e., won't block). Returns -1 on - * failure. If we "failed" because someone else already had the - * lock, <errno> is set to <EBUSY>. - */ - int tryacquire_read (void); - - /** - * Conditionally acquire a lock (i.e., won't block). Returns -1 on - * failure. If we "failed" because someone else already had the - * lock, <errno> is set to <EBUSY>. - */ - int tryacquire_write (void); - - /// Attempt to upgrade a read lock to a write lock. Returns 0 on - /// success, -1 on failure. - int tryacquire_write_upgrade (void); - - /// Return the underlying lock. - const ACE_File_Lock &lock (void) const; - - /// Dump the state of an object. - void dump (void) const; - - /// Declare the dynamic allocation hooks. - ACE_ALLOC_HOOK_DECLARE; - -private: - /// We need this to get the readers/writer semantics... - ACE_File_Lock lock_; -}; - -#if defined (__ACE_INLINE__) -#include "ace/RW_Process_Mutex.inl" -#endif /* __ACE_INLINE__ */ - -#include "ace/post.h" -#endif /* ACE_RW_PROCESS_MUTEX_H */ |