ACT-CV - Machine Vision for Cognitive Modeling
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
general
Threads
Mutex.h
Go to the documentation of this file.
1
// -*- mode: c++; indent-tabs-mode: nil; c-basic-offset: 4; coding: iso-8859-1; -*-
2
3
/*
4
ACT-CV - Machine Vision for Cognitive Modeling
5
Copyright (c) 2008 Marc Halbruegge
6
7
This program is free software; you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation; either version 2 of the License, or
10
(at your option) any later version.
11
12
This program is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with this program; if not, write to the Free Software
19
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
#pragma once
23
24
#include <mutex>
25
33
namespace
mhthreads {
34
35
#include <mutex>
36
37
#include <boost/noncopyable.hpp>
38
39
40
class
Mutex
:
public
boost::noncopyable{
41
std::mutex
mutex_
;
42
public
:
43
void
Enter
() {
44
mutex_
.lock();
45
}
46
void
Leave
() {
47
mutex_
.unlock();
48
}
49
};
50
51
56
struct
ScopedLock
{
57
Mutex
&
m
;
58
ScopedLock
(
Mutex
&mutex) :
m
(mutex) {
59
m
.
Enter
();
60
}
61
~ScopedLock
() {
62
m
.
Leave
();
63
}
64
};
65
66
};
// end of namespace mhthreads
67
ACT-CV - Machine Vision for Cognitive Modeling
© 2015
Marc Halbruegge
(actcvlibrary@googlemail.com)