test: move WaitEvent class to test_common.h file

Signed-off-by: Dehao Shang <dehao.shang@intel.com>
This commit is contained in:
shangdehao1 2018-12-24 11:01:51 +08:00 committed by Yuan Zhou
parent c4a3a3dba4
commit 62d3866e73
2 changed files with 43 additions and 36 deletions

View File

@ -6,50 +6,15 @@
#include "gtest/gtest.h"
#include "include/Context.h"
#include "common/Mutex.h"
#include "common/Cond.h"
#include "global/global_init.h"
#include "global/global_context.h"
#include "test/immutable_object_cache/test_common.h"
#include "tools/immutable_object_cache/CacheClient.h"
#include "tools/immutable_object_cache/CacheServer.h"
using namespace ceph::immutable_obj_cache;
// sequentialize async_operation
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;
};
class TestCommunication :public ::testing::Test {
public:
CacheServer* m_cache_server;

View File

@ -0,0 +1,42 @@
// -*- 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 "common/Mutex.h"
#include "common/Cond.h"
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