mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 19:11:46 +01:00
2c7d6f12ee
- Fixed compiler errors - Modified Makefiles to be part of plugin directory - Some minor changes in database.cpp to use the new MariaDB handler interface
51 lines
858 B
C++
51 lines
858 B
C++
|
|
// vim:sw=2:ai
|
|
|
|
/*
|
|
* Copyright (C) 2010 DeNA Co.,Ltd.. All rights reserved.
|
|
* See COPYRIGHT.txt for details.
|
|
*/
|
|
|
|
#ifndef DENA_MUTEX_HPP
|
|
#define DENA_MUTEX_HPP
|
|
|
|
#include <pthread.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "fatal.hpp"
|
|
#include "util.hpp"
|
|
|
|
namespace dena {
|
|
|
|
struct condition;
|
|
|
|
struct mutex : private noncopyable {
|
|
friend struct condition;
|
|
mutex() {
|
|
if (pthread_mutex_init(&mtx, 0) != 0) {
|
|
fatal_abort("pthread_mutex_init");
|
|
}
|
|
}
|
|
~mutex() {
|
|
if (pthread_mutex_destroy(&mtx) != 0) {
|
|
fatal_abort("pthread_mutex_destroy");
|
|
}
|
|
}
|
|
void lock() const {
|
|
if (pthread_mutex_lock(&mtx) != 0) {
|
|
fatal_abort("pthread_mutex_lock");
|
|
}
|
|
}
|
|
void unlock() const {
|
|
if (pthread_mutex_unlock(&mtx) != 0) {
|
|
fatal_abort("pthread_mutex_unlock");
|
|
}
|
|
}
|
|
private:
|
|
mutable pthread_mutex_t mtx;
|
|
};
|
|
|
|
};
|
|
|
|
#endif
|
|
|