From e6918187568dbd01842d8d1d2c808ce16a894239 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 21 Apr 2024 13:54:28 +0200 Subject: Adding upstream version 18.2.2. Signed-off-by: Daniel Baumann --- src/test/immutable_object_cache/test_common.h | 41 +++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/test/immutable_object_cache/test_common.h (limited to 'src/test/immutable_object_cache/test_common.h') diff --git a/src/test/immutable_object_cache/test_common.h b/src/test/immutable_object_cache/test_common.h new file mode 100644 index 000000000..9d6fd14c7 --- /dev/null +++ b/src/test/immutable_object_cache/test_common.h @@ -0,0 +1,41 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab +#ifndef CACHE_TEST_COMMON_H +#define CACHE_TEST_COMMON_H + +#include + +class WaitEvent { +public: + WaitEvent() : m_signaled(false) { + pthread_mutex_init(&m_lock, NULL); + pthread_cond_init(&m_cond, NULL); + } + + ~WaitEvent() { + pthread_mutex_destroy(&m_lock); + pthread_cond_destroy(&m_cond); + } + + void wait() { + pthread_mutex_lock(&m_lock); + while (!m_signaled) { + pthread_cond_wait(&m_cond, &m_lock); + } + m_signaled = false; + pthread_mutex_unlock(&m_lock); + } + + void signal() { + pthread_mutex_lock(&m_lock); + m_signaled = true; + pthread_cond_signal(&m_cond); + pthread_mutex_unlock(&m_lock); + } +private: + pthread_mutex_t m_lock; + pthread_cond_t m_cond; + bool m_signaled; +}; + +#endif -- cgit v1.2.3