IPC_UNUSED_

This commit is contained in:
mutouyun 2019-01-18 17:27:41 +08:00
parent 05ff0efc25
commit b52eae7c90
6 changed files with 34 additions and 10 deletions

View File

@ -9,6 +9,24 @@
namespace ipc { namespace ipc {
// pre-defined
#ifdef IPC_UNUSED_
# error "IPC_UNUSED_ has been defined."
#endif
#if __cplusplus >= 201703L
# define IPC_UNUSED_ [[maybe_unused]]
#else /*__cplusplus < 201703L*/
#if defined(_MSC_VER)
# define IPC_UNUSED_ __pragma(warning(suppress: 4100 4101 4189))
#elif defined(__GNUC__)
# define IPC_UNUSED_ __attribute__((__unused__))
#else
# define IPC_UNUSED_
#endif
#endif/*__cplusplus < 201703L*/
// types // types
using byte_t = std::uint8_t; using byte_t = std::uint8_t;

View File

@ -7,6 +7,8 @@
#include <unordered_map> #include <unordered_map>
#include <vector> #include <vector>
#include "def.h"
#include "memory/alloc.hpp" #include "memory/alloc.hpp"
#include "memory/wrapper.hpp" #include "memory/wrapper.hpp"
@ -32,7 +34,7 @@ constexpr void static_for(std::index_sequence<I...>, F&& f) {
#else /*__cplusplus < 201703L*/ #else /*__cplusplus < 201703L*/
inline void static_for(std::index_sequence<I...>, F&& f) { inline void static_for(std::index_sequence<I...>, F&& f) {
#endif/*__cplusplus < 201703L*/ #endif/*__cplusplus < 201703L*/
[[maybe_unused]] auto expand = { (f(std::integral_constant<size_t, I>{}), 0)... }; auto IPC_UNUSED_ expand = { (f(std::integral_constant<size_t, I>{}), 0)... };
} }
template <std::size_t Size> template <std::size_t Size>

View File

@ -12,6 +12,7 @@
#include <cstddef> #include <cstddef>
#include <type_traits> #include <type_traits>
#include "def.h"
#include "rw_lock.h" #include "rw_lock.h"
#include "tls_pointer.h" #include "tls_pointer.h"
@ -52,7 +53,7 @@ private:
alloc_t(synchronized* t) alloc_t(synchronized* t)
: t_ { t } { : t_ { t } {
{ {
[[maybe_unused]] auto guard = ipc::detail::unique_lock(t_->lc_); auto IPC_UNUSED_ guard = ipc::detail::unique_lock(t_->lc_);
auto it = t_->allocs_.begin(); auto it = t_->allocs_.begin();
if (it != t_->allocs_.end()) { if (it != t_->allocs_.end()) {
std::tie(s_, a_) = *it; std::tie(s_, a_) = *it;
@ -65,7 +66,7 @@ private:
} }
~alloc_t() { ~alloc_t() {
[[maybe_unused]] auto guard = ipc::detail::unique_lock(t_->lc_); auto IPC_UNUSED_ guard = ipc::detail::unique_lock(t_->lc_);
t_->allocs_.emplace(s_, a_); t_->allocs_.emplace(s_, a_);
} }

View File

@ -11,6 +11,7 @@
#include <utility> #include <utility>
#include <mutex> #include <mutex>
#include "def.h"
#include "memory/resource.hpp" #include "memory/resource.hpp"
namespace { namespace {
@ -65,7 +66,7 @@ void* acquire(char const * name, std::size_t size) {
auto acc = acc_of(mem); auto acc = acc_of(mem);
acc->fetch_add(1, std::memory_order_release); acc->fetch_add(1, std::memory_order_release);
{ {
[[maybe_unused]] auto guard = ipc::detail::unique_lock(m2h()->lc_); auto IPC_UNUSED_ guard = ipc::detail::unique_lock(m2h()->lc_);
m2h()->cache_.emplace(++acc, std::move(op_name)); m2h()->cache_.emplace(++acc, std::move(op_name));
} }
return acc; return acc;
@ -75,7 +76,7 @@ void release(void* mem, std::size_t size) {
if (mem == nullptr) { if (mem == nullptr) {
return; return;
} }
[[maybe_unused]] auto guard = ipc::detail::unique_lock(m2h()->lc_); auto IPC_UNUSED_ guard = ipc::detail::unique_lock(m2h()->lc_);
auto& cc = m2h()->cache_; auto& cc = m2h()->cache_;
auto it = cc.find(mem); auto it = cc.find(mem);
if (it == cc.end()) { if (it == cc.end()) {

View File

@ -43,7 +43,7 @@ void* acquire(char const * name, std::size_t size) {
return nullptr; return nullptr;
} }
{ {
[[maybe_unused]] auto guard = ipc::detail::unique_lock(m2h()->lc_); auto IPC_UNUSED_ guard = ipc::detail::unique_lock(m2h()->lc_);
m2h()->cache_.emplace(mem, h); m2h()->cache_.emplace(mem, h);
} }
return mem; return mem;
@ -53,7 +53,7 @@ void release(void* mem, std::size_t /*size*/) {
if (mem == nullptr) { if (mem == nullptr) {
return; return;
} }
[[maybe_unused]] auto guard = ipc::detail::unique_lock(m2h()->lc_); auto IPC_UNUSED_ guard = ipc::detail::unique_lock(m2h()->lc_);
auto& cc = m2h()->cache_; auto& cc = m2h()->cache_;
auto it = cc.find(mem); auto it = cc.find(mem);
if (it == cc.end()) { if (it == cc.end()) {

View File

@ -7,6 +7,8 @@
#include <memory> #include <memory>
#include <type_traits> #include <type_traits>
#include "def.h"
#if __cplusplus >= 201703L #if __cplusplus >= 201703L
namespace std { namespace std {
@ -58,7 +60,7 @@ public:
if (::pthread_mutexattr_init(&mutex_attr) != 0) { if (::pthread_mutexattr_init(&mutex_attr) != 0) {
return invalid(); return invalid();
} }
[[maybe_unused]] auto guard_mutex_attr = unique_ptr(&mutex_attr, ::pthread_mutexattr_destroy); auto IPC_UNUSED_ guard_mutex_attr = unique_ptr(&mutex_attr, ::pthread_mutexattr_destroy);
if (::pthread_mutexattr_setpshared(&mutex_attr, PTHREAD_PROCESS_SHARED) != 0) { if (::pthread_mutexattr_setpshared(&mutex_attr, PTHREAD_PROCESS_SHARED) != 0) {
return invalid(); return invalid();
} }
@ -71,7 +73,7 @@ public:
if (::pthread_condattr_init(&cond_attr) != 0) { if (::pthread_condattr_init(&cond_attr) != 0) {
return invalid(); return invalid();
} }
[[maybe_unused]] auto guard_cond_attr = unique_ptr(&cond_attr, ::pthread_condattr_destroy); auto IPC_UNUSED_ guard_cond_attr = unique_ptr(&cond_attr, ::pthread_condattr_destroy);
if (::pthread_condattr_setpshared(&cond_attr, PTHREAD_PROCESS_SHARED) != 0) { if (::pthread_condattr_setpshared(&cond_attr, PTHREAD_PROCESS_SHARED) != 0) {
return invalid(); return invalid();
} }
@ -100,7 +102,7 @@ public:
if (::pthread_mutex_lock(&(w->mutex_)) != 0) { if (::pthread_mutex_lock(&(w->mutex_)) != 0) {
return false; return false;
} }
[[maybe_unused]] auto guard = unique_ptr(&(w->mutex_), ::pthread_mutex_unlock); auto IPC_UNUSED_ guard = unique_ptr(&(w->mutex_), ::pthread_mutex_unlock);
if (::pthread_cond_wait(&(w->cond_), &(w->mutex_)) != 0) { if (::pthread_cond_wait(&(w->cond_), &(w->mutex_)) != 0) {
return false; return false;
} }