summaryrefslogtreecommitdiff
path: root/ACE/ace/Process_Mutex.inl
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/Process_Mutex.inl')
-rw-r--r--ACE/ace/Process_Mutex.inl118
1 files changed, 118 insertions, 0 deletions
diff --git a/ACE/ace/Process_Mutex.inl b/ACE/ace/Process_Mutex.inl
new file mode 100644
index 00000000000..6c19e8d6757
--- /dev/null
+++ b/ACE/ace/Process_Mutex.inl
@@ -0,0 +1,118 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+#if !defined (_ACE_USE_SV_SEM)
+ACE_INLINE const ACE_mutex_t &
+ACE_Process_Mutex::lock (void) const
+{
+// ACE_TRACE ("ACE_Process_Mutex::lock");
+ return this->lock_.lock ();
+}
+#endif /* !_ACE_USE_SV_SEM */
+
+// Explicitly destroy the mutex.
+ACE_INLINE int
+ACE_Process_Mutex::remove (void)
+{
+ return this->lock_.remove ();
+}
+
+// Acquire lock ownership (wait on priority queue if necessary).
+ACE_INLINE int
+ACE_Process_Mutex::acquire (void)
+{
+#if defined (_ACE_USE_SV_SEM)
+ return this->lock_.acquire (0, SEM_UNDO);
+#else
+ return this->lock_.acquire ();
+#endif // _ACE_USE_SV_SEM
+}
+
+// Acquire lock ownership (wait on priority queue if necessary).
+ACE_INLINE int
+ACE_Process_Mutex::acquire (ACE_Time_Value &tv)
+{
+#if !defined (_ACE_USE_SV_SEM)
+ return this->lock_.acquire (tv);
+#else
+ ACE_UNUSED_ARG (tv);
+ ACE_NOTSUP_RETURN (-1);
+#endif /* !_ACE_USE_SV_SEM */
+}
+
+// Conditionally acquire lock (i.e., don't wait on queue).
+ACE_INLINE int
+ACE_Process_Mutex::tryacquire (void)
+{
+#if defined (_ACE_USE_SV_SEM)
+ return this->lock_.tryacquire (0, SEM_UNDO);
+#else
+ return this->lock_.tryacquire ();
+#endif // _ACE_USE_SV_SEM
+}
+
+// Release lock and unblock a thread at head of priority queue.
+ACE_INLINE int
+ACE_Process_Mutex::release (void)
+{
+#if defined (_ACE_USE_SV_SEM)
+ return this->lock_.release (0, SEM_UNDO);
+#else
+ return this->lock_.release ();
+#endif // _ACE_USE_SV_SEM
+}
+
+// Acquire lock ownership (wait on priority queue if necessary).
+ACE_INLINE int
+ACE_Process_Mutex::acquire_read (void)
+{
+#if defined (_ACE_USE_SV_SEM)
+ return this->lock_.acquire_read (0, SEM_UNDO);
+#else
+ return this->lock_.acquire_read ();
+#endif // _ACE_USE_SV_SEM
+}
+
+// Acquire lock ownership (wait on priority queue if necessary).
+ACE_INLINE int
+ACE_Process_Mutex::acquire_write (void)
+{
+#if defined (_ACE_USE_SV_SEM)
+ return this->lock_.acquire_write (0, SEM_UNDO);
+#else
+ return this->lock_.acquire_write ();
+#endif // _ACE_USE_SV_SEM
+}
+
+// Conditionally acquire a lock (i.e., won't block).
+ACE_INLINE int
+ACE_Process_Mutex::tryacquire_read (void)
+{
+#if defined (_ACE_USE_SV_SEM)
+ return this->lock_.tryacquire_read (0, SEM_UNDO);
+#else
+ return this->lock_.tryacquire_read ();
+#endif // _ACE_USE_SV_SEM
+}
+
+// Conditionally acquire a lock (i.e., won't block).
+ACE_INLINE int
+ACE_Process_Mutex::tryacquire_write (void)
+{
+#if defined (_ACE_USE_SV_SEM)
+ return this->lock_.tryacquire_write (0, SEM_UNDO);
+#else
+ return this->lock_.tryacquire_write ();
+#endif // _ACE_USE_SV_SEM
+}
+
+ACE_INLINE int
+ACE_Process_Mutex::tryacquire_write_upgrade (void)
+{
+ return 0;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL