SWC-DB
v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
Semaphore.h
Go to the documentation of this file.
1
/*
2
* SWC-DB© Copyright since 2019 Alex Kashirin <kashirin.alex@gmail.com>
3
* License details at <https://github.com/kashirin-alex/swc-db/#license>
4
*/
5
6
#ifndef swcdb_core_Semaphore_h
7
#define swcdb_core_Semaphore_h
8
9
10
#include "
swcdb/core/Compat.h
"
11
#include <condition_variable>
12
13
14
namespace
SWC
{
namespace
Core {
15
16
class
Semaphore
final {
17
public
:
18
19
explicit
Semaphore
(
size_t
sz=1,
size_t
pre_acquire = 0) noexcept;
20
21
Semaphore
(
const
Semaphore
&) =
delete
;
22
23
Semaphore
(
const
Semaphore
&&) =
delete
;
24
25
Semaphore
&
operator=
(
const
Semaphore
&) =
delete
;
26
27
~Semaphore
() noexcept;
28
29
size_t
available
();
30
31
bool
has_pending
();
32
33
void
acquire
();
34
35
void
release
();
36
37
void
wait_until_under_and_acquire
(
size_t
sz);
38
39
void
wait_until_under
(
size_t
sz);
40
41
size_t
wait_available
();
42
43
void
wait_all
();
44
45
private:
46
std::mutex
m_mutex
;
47
std::condition_variable
m_cv
;
48
const
size_t
m_sz
;
49
size_t
m_count
;
50
};
51
52
53
}}
//namespace SWC::Core
54
55
56
57
#ifdef SWC_IMPL_SOURCE
58
#include "
swcdb/core/Semaphore.cc
"
59
#endif
60
61
#endif // swcdb_core_Semaphore_h
SWC::Core::Semaphore
Definition:
Semaphore.h:16
SWC::Core::Semaphore::m_count
size_t m_count
Definition:
Semaphore.h:49
SWC::Core::Semaphore::Semaphore
Semaphore(const Semaphore &)=delete
SWC::Core::Semaphore::acquire
void acquire()
Definition:
Semaphore.cc:29
SWC::Core::Semaphore::available
size_t available()
Definition:
Semaphore.cc:19
SWC::Core::Semaphore::wait_all
void wait_all()
Definition:
Semaphore.cc:62
SWC::Core::Semaphore::Semaphore
Semaphore(size_t sz=1, size_t pre_acquire=0) noexcept
Definition:
Semaphore.cc:13
SWC::Core::Semaphore::operator=
Semaphore & operator=(const Semaphore &)=delete
SWC
The SWC-DB C++ namespace 'SWC'.
Definition:
main.cc:12
SWC::Core::Semaphore::~Semaphore
~Semaphore() noexcept
Definition:
Semaphore.cc:17
Compat.h
SWC::Core::Semaphore::wait_until_under
void wait_until_under(size_t sz)
Definition:
Semaphore.cc:49
SWC::Core::Semaphore::wait_until_under_and_acquire
void wait_until_under_and_acquire(size_t sz)
Definition:
Semaphore.cc:42
SWC::Core::Semaphore::m_sz
const size_t m_sz
Definition:
Semaphore.h:48
SWC::Core::Semaphore::wait_available
size_t wait_available()
Definition:
Semaphore.cc:55
SWC::Core::Semaphore::has_pending
bool has_pending()
Definition:
Semaphore.cc:24
SWC::Core::Semaphore::Semaphore
Semaphore(const Semaphore &&)=delete
SWC::Core::Semaphore::release
void release()
Definition:
Semaphore.cc:36
SWC::Core::Semaphore::m_cv
std::condition_variable m_cv
Definition:
Semaphore.h:47
Semaphore.cc
SWC::Core::Semaphore::m_mutex
std::mutex m_mutex
Definition:
Semaphore.h:46
include
swcdb
core
Semaphore.h
Generated on Sat Jun 3 2023 18:00:06 for SWC-DB by
1.8.20