LLDB
mainline
llvm-project
lldb
source
Host
common
common/ProcessRunLock.cpp
Go to the documentation of this file.
1
//===-- ProcessRunLock.cpp ------------------------------------------------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef _WIN32
10
#include "
lldb/Host/ProcessRunLock.h
"
11
12
namespace
lldb_private
{
13
14
ProcessRunLock::ProcessRunLock
() {
15
int
err = ::pthread_rwlock_init(&
m_rwlock
,
nullptr
);
16
(void)err;
17
}
18
19
ProcessRunLock::~ProcessRunLock
() {
20
int
err = ::pthread_rwlock_destroy(&
m_rwlock
);
21
(void)err;
22
}
23
24
bool
ProcessRunLock::ReadTryLock
() {
25
::pthread_rwlock_rdlock(&
m_rwlock
);
26
if
(!
m_running
) {
27
// coverity[missing_unlock]
28
return
true
;
29
}
30
::pthread_rwlock_unlock(&
m_rwlock
);
31
return
false
;
32
}
33
34
bool
ProcessRunLock::ReadUnlock
() {
35
return ::pthread_rwlock_unlock(&
m_rwlock
) == 0;
36
}
37
38
bool
ProcessRunLock::SetRunning
() {
39
::pthread_rwlock_wrlock(&
m_rwlock
);
40
bool
was_stopped = !
m_running
;
41
m_running
=
true
;
42
::pthread_rwlock_unlock(&
m_rwlock
);
43
return
was_stopped;
44
}
45
46
bool
ProcessRunLock::SetStopped
() {
47
::pthread_rwlock_wrlock(&
m_rwlock
);
48
bool
was_running =
m_running
;
49
m_running
=
false
;
50
::pthread_rwlock_unlock(&
m_rwlock
);
51
return
was_running;
52
}
53
54
}
// namespace lldb_private
55
56
#endif
ProcessRunLock.h
lldb_private::ProcessRunLock::m_running
bool m_running
Definition
ProcessRunLock.h:94
lldb_private::ProcessRunLock::ReadUnlock
bool ReadUnlock()
Definition
common/ProcessRunLock.cpp:34
lldb_private::ProcessRunLock::~ProcessRunLock
~ProcessRunLock()
Definition
common/ProcessRunLock.cpp:19
lldb_private::ProcessRunLock::SetStopped
bool SetStopped()
Set the process to stopped.
Definition
common/ProcessRunLock.cpp:46
lldb_private::ProcessRunLock::ReadTryLock
bool ReadTryLock()
Definition
common/ProcessRunLock.cpp:24
lldb_private::ProcessRunLock::m_rwlock
lldb::rwlock_t m_rwlock
Definition
ProcessRunLock.h:93
lldb_private::ProcessRunLock::ProcessRunLock
ProcessRunLock()
Definition
common/ProcessRunLock.cpp:14
lldb_private::ProcessRunLock::SetRunning
bool SetRunning()
Set the process to running.
Definition
common/ProcessRunLock.cpp:38
lldb_private
A class that represents a running process on the host machine.
Definition
SBAddressRange.h:14
Generated on
for LLDB by
1.14.0