diff --git a/src/libipc/platform/win/get_sa.h b/src/libipc/platform/win/get_sa.h index b512541..2741459 100644 --- a/src/libipc/platform/win/get_sa.h +++ b/src/libipc/platform/win/get_sa.h @@ -7,14 +7,14 @@ namespace detail { inline LPSECURITY_ATTRIBUTES get_sa() { LIBIPC_LOG(); - static struct initiator { - + + template + struct initiator { SECURITY_DESCRIPTOR sd_; SECURITY_ATTRIBUTES sa_; - bool succ_ = false; - initiator() { + initiator(Logger const &log) { if (!::InitializeSecurityDescriptor(&sd_, SECURITY_DESCRIPTOR_REVISION)) { log.error("fail InitializeSecurityDescriptor[", static_cast(::GetLastError()), "]"); return; @@ -28,7 +28,9 @@ inline LPSECURITY_ATTRIBUTES get_sa() { sa_.lpSecurityDescriptor = &sd_; succ_ = true; } - } handle; + }; + + static initiator handle(log); return handle.succ_ ? &handle.sa_ : nullptr; } diff --git a/src/libipc/platform/win/semaphore.h b/src/libipc/platform/win/semaphore.h index 2182d91..b5915e9 100644 --- a/src/libipc/platform/win/semaphore.h +++ b/src/libipc/platform/win/semaphore.h @@ -76,7 +76,7 @@ public: bool post(std::uint32_t count) noexcept { LIBIPC_LOG(); if (!::ReleaseSemaphore(h_, static_cast(count), NULL)) { - log.error("fail ReleaseSemaphore[", ::GetLastError(), "]");"}] + log.error("fail ReleaseSemaphore[", ::GetLastError(), "]"); return false; } return true;