55
66#include < pthread.h>
77
8- #include " libipc/utility /log.h"
8+ #include " libipc/imp /log.h"
99#include " libipc/utility/scope_guard.h"
1010#include " libipc/mutex.h"
1111#include " libipc/shm.h"
@@ -21,8 +21,9 @@ class condition {
2121 pthread_cond_t *cond_ = nullptr ;
2222
2323 pthread_cond_t *acquire_cond (char const *name) {
24+ LIBIPC_LOG ();
2425 if (!shm_.acquire (name, sizeof (pthread_cond_t ))) {
25- ipc:: error (" [acquire_cond] fail shm.acquire: %s\n " , name);
26+ log. error (" [acquire_cond] fail shm.acquire: %s" , name);
2627 return nullptr ;
2728 }
2829 return static_cast <pthread_cond_t *>(shm_.get ());
@@ -47,6 +48,7 @@ class condition {
4748 }
4849
4950 bool open (char const *name) noexcept {
51+ LIBIPC_LOG ();
5052 close ();
5153 if ((cond_ = acquire_cond (name)) == nullptr ) {
5254 return false ;
@@ -60,28 +62,29 @@ class condition {
6062 int eno;
6163 pthread_condattr_t cond_attr;
6264 if ((eno = ::pthread_condattr_init (&cond_attr)) != 0 ) {
63- ipc:: error (" fail pthread_condattr_init[%d]\n " , eno);
65+ log. error (" fail pthread_condattr_init[%d]" , eno);
6466 return false ;
6567 }
6668 LIBIPC_UNUSED auto guard_cond_attr = guard ([&cond_attr] { ::pthread_condattr_destroy (&cond_attr); });
6769 if ((eno = ::pthread_condattr_setpshared (&cond_attr, PTHREAD_PROCESS_SHARED)) != 0 ) {
68- ipc:: error (" fail pthread_condattr_setpshared[%d]\n " , eno);
70+ log. error (" fail pthread_condattr_setpshared[%d]" , eno);
6971 return false ;
7072 }
7173 *cond_ = PTHREAD_COND_INITIALIZER;
7274 if ((eno = ::pthread_cond_init (cond_, &cond_attr)) != 0 ) {
73- ipc:: error (" fail pthread_cond_init[%d]\n " , eno);
75+ log. error (" fail pthread_cond_init[%d]" , eno);
7476 return false ;
7577 }
7678 finally.dismiss ();
7779 return valid ();
7880 }
7981
8082 void close () noexcept {
83+ LIBIPC_LOG ();
8184 if ((shm_.ref () <= 1 ) && cond_ != nullptr ) {
8285 int eno;
8386 if ((eno = ::pthread_cond_destroy (cond_)) != 0 ) {
84- ipc:: error (" fail pthread_cond_destroy[%d]\n " , eno);
87+ log. error (" fail pthread_cond_destroy[%d]" , eno);
8588 }
8689 }
8790 shm_.release ();
@@ -92,7 +95,7 @@ class condition {
9295 if ((shm_.ref () <= 1 ) && cond_ != nullptr ) {
9396 int eno;
9497 if ((eno = ::pthread_cond_destroy (cond_)) != 0 ) {
95- ipc:: error (" fail pthread_cond_destroy[%d]\n " , eno);
98+ log. error (" fail pthread_cond_destroy[%d]" , eno);
9699 }
97100 }
98101 shm_.clear (); // Make sure the storage is cleaned up.
@@ -104,12 +107,13 @@ class condition {
104107 }
105108
106109 bool wait (ipc::sync::mutex &mtx, std::uint64_t tm) noexcept {
110+ LIBIPC_LOG ();
107111 if (!valid ()) return false ;
108112 switch (tm) {
109113 case invalid_value: {
110114 int eno;
111115 if ((eno = ::pthread_cond_wait (cond_, static_cast <pthread_mutex_t *>(mtx.native ()))) != 0 ) {
112- ipc:: error (" fail pthread_cond_wait[%d]\n " , eno);
116+ log. error (" fail pthread_cond_wait[%d]" , eno);
113117 return false ;
114118 }
115119 }
@@ -134,7 +138,7 @@ class condition {
134138 if (!valid ()) return false ;
135139 int eno;
136140 if ((eno = ::pthread_cond_signal (cond_)) != 0 ) {
137- ipc:: error (" fail pthread_cond_signal[%d]\n " , eno);
141+ log. error (" fail pthread_cond_signal[%d]" , eno);
138142 return false ;
139143 }
140144 return true ;
@@ -144,7 +148,7 @@ class condition {
144148 if (!valid ()) return false ;
145149 int eno;
146150 if ((eno = ::pthread_cond_broadcast (cond_)) != 0 ) {
147- ipc:: error (" fail pthread_cond_broadcast[%d]\n " , eno);
151+ log. error (" fail pthread_cond_broadcast[%d]" , eno);
148152 return false ;
149153 }
150154 return true ;
0 commit comments