Develop Biology
The language of life
ThreadSafe.h
Go to the documentation of this file.
1
/*
2
* This file is a part of the Biology project by eons LLC.
3
* Biology (aka Develop Biology) is a framework for approaching software
4
* development from a natural sciences perspective.
5
*
6
* Copyright (C) 2021 Séon O'Shannon & eons LLC
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU Affero General Public License as
10
* published by the Free Software Foundation, either version 3 of the
11
* License, or (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU Affero General Public License for more details.
17
*
18
* You should have received a copy of the GNU Affero General Public License
19
* along with this program. If not, see <https://www.gnu.org/licenses/>.
20
*/
21
22
#pragma once
23
24
#include "
bio/common/macros/LanguageMacros.h
"
25
26
//@formatter:off
27
#if BIO_CPP_VERSION < 11
28
#ifdef BIO_OS_IS_LINUX
29
#include <pthread.h>
30
#endif
31
#else
32
#include <mutex>
33
#endif
34
//@formatter:on
35
36
namespace
bio
{
37
48
class
ThreadSafe
49
{
50
public
:
54
ThreadSafe
();
55
59
ThreadSafe
(
const
ThreadSafe
& toCopy);
60
64
virtual
~ThreadSafe
();
65
69
void
LockThread
()
const
;
70
74
void
UnlockThread
()
const
;
75
76
//@formatter:off
77
#if BIO_CPP_VERSION < 11
78
#ifdef BIO_OS_IS_LINUX
79
mutable
pthread_mutex_t m_lock;
80
#endif
81
#else
82
std::mutex m_mutex;
83
mutable
std::unique_lock<std::mutex> m_lock;
84
#endif
85
//@formatter:on
86
};
87
88
}
//bio namespace
LanguageMacros.h
bio::ThreadSafe
Definition:
ThreadSafe.h:49
bio::ThreadSafe::LockThread
void LockThread() const
Definition:
ThreadSafe.cpp:84
bio::ThreadSafe::ThreadSafe
ThreadSafe()
Definition:
ThreadSafe.cpp:26
bio::ThreadSafe::~ThreadSafe
virtual ~ThreadSafe()
Definition:
ThreadSafe.cpp:72
bio::ThreadSafe::UnlockThread
void UnlockThread() const
Definition:
ThreadSafe.cpp:97
bio
Definition:
Cell.h:31
inc
bio
common
ThreadSafe.h
Generated by
1.9.4