YARP
Yet Another Robot Platform
RecursiveMutex.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2006-2020 Istituto Italiano di Tecnologia (IIT)
3  * All rights reserved.
4  *
5  * This software may be modified and distributed under the terms of the
6  * BSD-3-Clause license. See the accompanying LICENSE file for details.
7  */
8 
9 #ifndef YARP_OS_RECURSIVELOCK_H
10 #define YARP_OS_RECURSIVELOCK_H
11 
12 #include <yarp/conf/system.h>
13 
14 #if !defined(YARP_INCLUDING_DEPRECATED_HEADER_ON_PURPOSE)
15 YARP_COMPILER_WARNING("<yarp/os/RecursiveMutex.h> file is deprecated")
16 #endif
17 
18 #ifndef YARP_NO_DEPRECATED // Since YARP 3.3
19 
20 #include <yarp/os/api.h>
21 #include <mutex>
22 
23 namespace yarp {
24 namespace os {
25 
43 class YARP_os_DEPRECATED_API_MSG("Use std::recursive_mutex instead") RecursiveMutex
44 {
45 public:
50 
54  ~RecursiveMutex();
55 
64  void lock();
65 
73  bool try_lock();
74 
81  void unlock();
82 
92  YARP_DEPRECATED_MSG("Use try_lock() instead")
93  bool tryLock();
94 
95 #ifndef DOXYGEN_SHOULD_SKIP_THIS
96 private:
97  class Private;
98  Private* mPriv;
99 #endif // DOXYGEN_SHOULD_SKIP_THIS
100 };
101 
102 } // namespace os
103 } // namespace yarp
104 
105 #endif // YARP_NO_DEPRECATED
106 
107 #endif // YARP_OS_RECURSIVELOCK_H
yarp::os::RecursiveMutex
RecursiveMutex offers exclusive, recursive ownership semantics:
Definition: RecursiveMutex.h:44
api.h
system.h
YARP_DEPRECATED_MSG
#define YARP_DEPRECATED_MSG(MSG)
Expands to either the standard [[deprecated]] attribute or a compiler-specific decorator such as __at...
Definition: compiler.h:2883
yarp
The main, catch-all namespace for YARP.
Definition: environment.h:18
YARP_os_DEPRECATED_API_MSG
#define YARP_os_DEPRECATED_API_MSG(X)
Definition: api.h:23
yarp::os::RecursiveMutex::Private
Definition: RecursiveMutex.cpp:18
YARP_COMPILER_WARNING
#define YARP_COMPILER_WARNING(x)
Generate a warning at build time on supported compilers.
Definition: system.h:112