CallbackWaitLock.h
Go to the documentation of this file.
1
/*
2
* This file is part of ArmarX.
3
*
4
* Copyright (C) 2011-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5
*
6
* ArmarX is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 as
8
* published by the Free Software Foundation.
9
*
10
* ArmarX is distributed in the hope that it will be useful, but
11
* WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*
18
* @package ArmarXCore::core
19
* @author Clemens Wallrath ( uagzs at student dot kit dot edu )
20
* @date 2016
21
* @copyright http://www.gnu.org/licenses/gpl.txt
22
* GNU General Public License
23
*/
24
25
#pragma once
26
27
#include "
LocalTimeServer.h
"
28
29
#include <condition_variable>
30
#include <mutex>
31
32
namespace
armarx
33
{
34
/**
35
* @class CallbackWaitLock
36
* @brief CallbackWaitLock is used to block a thread and unblock it from another thread via callback
37
* @ingroup VirtualTime
38
*
39
* When wait() is called, the calling thread is blocked until call() is called from another thread.
40
* This is mainly intended as helper for TimeUtil::Sleep(,,,).
41
*/
42
class
[[deprecated("Use
std
::binary_semaphore instead.")]]
CallbackWaitLock
:
43
public
CallbackReceiver
44
{
45
public
:
46
CallbackWaitLock
();
47
48
void
call
()
override
;
49
50
/**
51
* @brief wait blocks the calling thread until CallbackWaitLock::call() is called.
52
*/
53
void
wait();
54
55
protected
:
56
std::condition_variable
condWait
;
57
std::mutex
waitMutex
;
58
/**
59
* whether call() was called (to prevent race conditions)
60
*/
61
bool
called
;
62
};
63
}
armarx::CallbackWaitLock::called
bool called
whether call() was called (to prevent race conditions)
Definition:
CallbackWaitLock.h:61
armarx::CallbackWaitLock
CallbackWaitLock is used to block a thread and unblock it from another thread via callback.
Definition:
CallbackWaitLock.h:42
armarx::CallbackWaitLock::condWait
std::condition_variable condWait
Definition:
CallbackWaitLock.h:56
LocalTimeServer.h
armarx::CallbackReceiver
Used by CallbackWaitLock.
Definition:
LocalTimeServer.h:42
std
Definition:
Application.h:66
armarx::CallbackWaitLock::waitMutex
std::mutex waitMutex
Definition:
CallbackWaitLock.h:57
armarx::armem::base::detail::call
bool call(FunctionT &&func, ChildT &&child)
Definition:
iteration_mixins.h:39
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition:
ArmarXTimeserver.cpp:28
ArmarXCore
core
time
CallbackWaitLock.h
Generated on Sat Oct 12 2024 09:14:02 for armarx_documentation by
1.8.17