summaryrefslogtreecommitdiff
path: root/netsvcs
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2000-04-30 02:49:31 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2000-04-30 02:49:31 +0000
commit8d3010c36cf284e5197b119cd04d989b22bece1c (patch)
tree991ea01610df8367341df0cd616a848800db942f /netsvcs
parentbab58c358ec7b50c984823b58a75c42354beebfa (diff)
downloadATCD-8d3010c36cf284e5197b119cd04d989b22bece1c.tar.gz
ChangeLogTag:Sat Apr 29 19:45:41 2000 Ossama Othman <ossama@uci.edu>
Diffstat (limited to 'netsvcs')
-rw-r--r--netsvcs/lib/Log_Message_Receiver.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/netsvcs/lib/Log_Message_Receiver.cpp b/netsvcs/lib/Log_Message_Receiver.cpp
index 0a10a735988..31f15910c79 100644
--- a/netsvcs/lib/Log_Message_Receiver.cpp
+++ b/netsvcs/lib/Log_Message_Receiver.cpp
@@ -68,29 +68,38 @@ Log_Message_Receiver_Impl<ACE_SYNCH_USE>::attach (Log_Message_Receiver_Impl<ACE_
ACE_ASSERT (body != 0);
#if defined (ACE_HAS_THREADS)
- #if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
+# if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
Guard guard (copy_lock_);
- #else
+ if (guard.locked () == 0)
+ return 0;
+# else
// Use the "body"s print lock as copy lock.
- ACE_Guard<ACE_SYNCH_MUTEX> guard (global_copy_lock_);
- #endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
+ guard,
+ global_copy_lock_,
+ 0);
+# endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
#endif /* ACE_HAS_THREADS */
++body->count_;
return body;
}
template<ACE_SYNCH_DECL> void
-Log_Message_Receiver_Impl<ACE_SYNCH_USE>::detach(Log_Message_Receiver_Impl<ACE_SYNCH_USE> *body)
+Log_Message_Receiver_Impl<ACE_SYNCH_USE>::detach (Log_Message_Receiver_Impl<ACE_SYNCH_USE> *body)
{
ACE_ASSERT (body != 0);
#if defined (ACE_HAS_THREADS)
- #if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
+# if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
Guard guard (copy_lock_);
- #else
+ if (guard.locked () == 0)
+ return;
+# else
// Use the "body"s print lock as copy lock.
- ACE_Guard<ACE_SYNCH_MUTEX> guard (global_copy_lock_);
- #endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
+ ACE_GUARD (ACE_SYNCH_MUTEX,
+ guard,
+ global_copy_lock_);
+# endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
#endif /* ACE_HAS_THREADS */
if (body->count_-- == 0)
delete body;