00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef ACE_RW_THREAD_MUTEX_H
00016 #define ACE_RW_THREAD_MUTEX_H
00017 #include "ace/pre.h"
00018
00019 #include "ace/ACE_export.h"
00020
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif
00024
00025 #if !defined (ACE_HAS_THREADS)
00026 # include "ace/Null_Mutex.h"
00027 #else
00028
00029
00030 #include "ace/RW_Mutex.h"
00031
00032 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00033
00034
00035
00036
00037
00038
00039 class ACE_Export ACE_RW_Thread_Mutex : public ACE_RW_Mutex
00040 {
00041 public:
00042 ACE_RW_Thread_Mutex (const ACE_TCHAR *name = 0,
00043 void *arg = 0);
00044
00045
00046 ~ACE_RW_Thread_Mutex (void);
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 int tryacquire_write_upgrade (void);
00057
00058
00059 void dump (void) const;
00060
00061
00062 ACE_ALLOC_HOOK_DECLARE;
00063 };
00064
00065 ACE_END_VERSIONED_NAMESPACE_DECL
00066
00067 #if defined (__ACE_INLINE__)
00068 #include "ace/RW_Thread_Mutex.inl"
00069 #endif
00070
00071 #endif
00072
00073 #include "ace/post.h"
00074 #endif