diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5324054..da6b05e 100755 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -45,7 +45,7 @@ target_include_directories(${PROJECT_NAME} if(NOT MSVC) target_link_libraries(${PROJECT_NAME} PUBLIC $<$>:pthread> - $<$>:rt>) + $<$,$>>:rt>) endif() install( diff --git a/src/libipc/platform/posix/condition.h b/src/libipc/platform/posix/condition.h index d9d4280..09f22a0 100644 --- a/src/libipc/platform/posix/condition.h +++ b/src/libipc/platform/posix/condition.h @@ -5,12 +5,13 @@ #include -#include "libipc/platform/get_wait_time.h" #include "libipc/utility/log.h" #include "libipc/utility/scope_guard.h" #include "libipc/mutex.h" #include "libipc/shm.h" +#include "get_wait_time.h" + namespace ipc { namespace detail { namespace sync { @@ -62,7 +63,7 @@ public: ipc::error("fail pthread_condattr_init[%d]\n", eno); return false; } - IPC_UNUSED_ auto guard_cond_attr = unique_ptr(&cond_attr, ::pthread_condattr_destroy); + IPC_UNUSED_ auto guard_cond_attr = guard([&cond_attr] { ::pthread_condattr_destroy(&cond_attr); }; if ((eno = ::pthread_condattr_setpshared(&cond_attr, PTHREAD_PROCESS_SHARED)) != 0) { ipc::error("fail pthread_condattr_setpshared[%d]\n", eno); return false; diff --git a/src/libipc/platform/posix/mutex.h b/src/libipc/platform/posix/mutex.h index 9080f58..fbe5010 100644 --- a/src/libipc/platform/posix/mutex.h +++ b/src/libipc/platform/posix/mutex.h @@ -9,13 +9,14 @@ #include -#include "libipc/platform/get_wait_time.h" #include "libipc/platform/detail.h" #include "libipc/utility/log.h" #include "libipc/utility/scope_guard.h" #include "libipc/memory/resource.h" #include "libipc/shm.h" +#include "get_wait_time.h" + namespace ipc { namespace detail { namespace sync { @@ -114,7 +115,7 @@ public: ipc::error("fail pthread_mutexattr_init[%d]\n", eno); return false; } - IPC_UNUSED_ auto guard_mutex_attr = unique_ptr(&mutex_attr, ::pthread_mutexattr_destroy); + IPC_UNUSED_ auto guard_mutex_attr = guard([&mutex_attr] { ::pthread_mutexattr_destroy(&mutex_attr); }; if ((eno = ::pthread_mutexattr_setpshared(&mutex_attr, PTHREAD_PROCESS_SHARED)) != 0) { ipc::error("fail pthread_mutexattr_setpshared[%d]\n", eno); return false;