Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
Related Functions
:
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
v
w
x
z
Files
File List
File Members
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Variables
$
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
v
w
x
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
GitLab
LXR
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
Control
CxxUtils
CxxUtils
LockedPointer.h
Go to the documentation of this file.
1
// This file's extension implies that it's C, but it's really -*- C++ -*-.
2
/*
3
* Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration.
4
*/
13
#ifndef CXXUTILS_LOCKEDPOINTER_H
14
#define CXXUTILS_LOCKEDPOINTER_H
15
16
17
#include <mutex>
18
19
20
namespace
CxxUtils
{
21
22
33
template
<
class
T,
class
MUTEX=std::recursive_mutex>
34
class
LockedPointer
35
{
36
public
:
37
LockedPointer
(T&
p
, std::unique_lock<MUTEX>&& lock)
38
:
m_lock
(std::move (lock)),
39
m_p
(
p
)
40
{
41
}
42
43
T*
get
() {
return
&
m_p
; }
44
T*
operator->
() {
return
&
m_p
; }
45
T&
operator*
() {
return
m_p
; }
46
47
private
:
48
std::unique_lock<MUTEX>
m_lock
;
49
T&
m_p
;
50
};
51
52
}
// namespace CxxUtils
53
54
55
#endif // not CXXUTILS_LOCKEDPOINTER_H
CxxUtils::LockedPointer::get
T * get()
Definition:
LockedPointer.h:43
CxxUtils::LockedPointer::LockedPointer
LockedPointer(T &p, std::unique_lock< MUTEX > &&lock)
Definition:
LockedPointer.h:37
CxxUtils::LockedPointer::m_lock
std::unique_lock< MUTEX > m_lock
Definition:
LockedPointer.h:48
CxxUtils::LockedPointer
A pointer together with a movable lock.
Definition:
LockedPointer.h:35
CxxUtils::LockedPointer::operator*
T & operator*()
Definition:
LockedPointer.h:45
python.utils.AtlRunQueryDQUtils.p
p
Definition:
AtlRunQueryDQUtils.py:210
CxxUtils
Definition:
aligned_vector.h:29
CxxUtils::LockedPointer::operator->
T * operator->()
Definition:
LockedPointer.h:44
CxxUtils::LockedPointer::m_p
T & m_p
Definition:
LockedPointer.h:49
Generated on Wed May 28 2025 21:13:28 for ATLAS Offline Software by
1.8.18