Version: 9.15.0
MutexPT.cxx
Go to the documentation of this file.
1
// Copyright (C) 2006-2025 CEA, EDF
2
//
3
// This library is free software; you can redistribute it and/or
4
// modify it under the terms of the GNU Lesser General Public
5
// License as published by the Free Software Foundation; either
6
// version 2.1 of the License, or (at your option) any later version.
7
//
8
// This library is distributed in the hope that it will be useful,
9
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
// Lesser General Public License for more details.
12
//
13
// You should have received a copy of the GNU Lesser General Public
14
// License along with this library; if not, write to the Free Software
15
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
//
17
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18
//
19
20
#include "
MutexPT.hxx
"
21
22
using namespace
YACS::BASES
;
23
24
MutexPT::MutexPT
()
25
{
26
//pthread_mutexattr_settype(&_options, PTHREAD_MUTEX_FAST_NP);
27
//pthread_mutex_init(&_mutexDesc, &_options);
28
pthread_mutex_init(&
_mutexDesc
, NULL);
// potential hang up at start with commented init
29
}
30
31
MutexPT::~MutexPT
()
32
{
33
pthread_mutex_destroy(&
_mutexDesc
);
34
}
35
36
void
MutexPT::lock
()
37
{
38
pthread_mutex_lock(&
_mutexDesc
);
39
}
40
41
void
MutexPT::unLock
()
42
{
43
pthread_mutex_unlock(&
_mutexDesc
);
44
}
45
46
ConditionPT::ConditionPT
()
47
{
48
pthread_cond_init(&
_cond
, NULL);
49
}
50
51
ConditionPT::~ConditionPT
()
52
{
53
pthread_cond_destroy(&
_cond
);
54
}
55
56
void
ConditionPT::notify_one
()
57
{
58
pthread_cond_signal(&
_cond
);
59
}
60
61
void
ConditionPT::notify_all
()
62
{
63
pthread_cond_broadcast(&
_cond
);
64
}
65
66
void
ConditionPT::wait
(
MutexPT
& mutex)
67
{
68
pthread_cond_wait(&
_cond
, &mutex.
_mutexDesc
);
69
}
70
MutexPT.hxx
YACS::BASES::ConditionPT::ConditionPT
ConditionPT()
Definition:
MutexPT.cxx:46
YACS::BASES::ConditionPT::wait
void wait(MutexPT &mutex)
Definition:
MutexPT.cxx:66
YACS::BASES::ConditionPT::_cond
pthread_cond_t _cond
Definition:
MutexPT.hxx:56
YACS::BASES::ConditionPT::~ConditionPT
~ConditionPT()
Definition:
MutexPT.cxx:51
YACS::BASES::ConditionPT::notify_one
void notify_one()
Definition:
MutexPT.cxx:56
YACS::BASES::ConditionPT::notify_all
void notify_all()
Definition:
MutexPT.cxx:61
YACS::BASES::MutexPT
Definition:
MutexPT.hxx:34
YACS::BASES::MutexPT::lock
void lock()
Definition:
MutexPT.cxx:36
YACS::BASES::MutexPT::~MutexPT
~MutexPT()
Definition:
MutexPT.cxx:31
YACS::BASES::MutexPT::unLock
void unLock()
Definition:
MutexPT.cxx:41
YACS::BASES::MutexPT::_mutexDesc
pthread_mutex_t _mutexDesc
Definition:
MutexPT.hxx:42
YACS::BASES::MutexPT::MutexPT
MutexPT()
Definition:
MutexPT.cxx:24
YACS::BASES
Definition:
AlternateThreadPT.hxx:29
src
bases
MutexPT.cxx
Copyright © 2006-2024 CEA, EDF