[Lldb-commits] [PATCH] D68762: [LLDB] Fix when building with strict LLVM assertion checking on FreeBSD
David CARLIER via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Wed Oct 9 23:23:52 PDT 2019
devnexen updated this revision to Diff 224256.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68762/new/
https://reviews.llvm.org/D68762
Files:
lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
Index: lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
===================================================================
--- lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
+++ lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
@@ -730,10 +730,12 @@
}
// Finally, start monitoring the child process for change in state.
+ if (m_monitor_thread)
+ m_monitor_thread->Reset();
m_monitor_thread = Host::StartMonitoringChildProcess(
std::bind(&ProcessMonitor::MonitorCallback, this, _1, _2, _3, _4),
GetPID(), true);
- if (!m_monitor_thread->IsJoinable()) {
+ if (m_monitor_thread && !m_monitor_thread->IsJoinable()) {
error.SetErrorToGenericError();
error.SetErrorString("Process launch failed.");
return;
@@ -771,7 +773,7 @@
m_monitor_thread = Host::StartMonitoringChildProcess(
std::bind(&ProcessMonitor::MonitorCallback, this, _1, _2, _3, _4),
GetPID(), true);
- if (!m_monitor_thread->IsJoinable()) {
+ if (m_monitor_thread && !m_monitor_thread->IsJoinable()) {
error.SetErrorToGenericError();
error.SetErrorString("Process attach failed.");
return;
@@ -784,9 +786,11 @@
void ProcessMonitor::StartLaunchOpThread(LaunchArgs *args, Status &error) {
static const char *g_thread_name = "lldb.process.freebsd.operation";
- if (m_operation_thread->IsJoinable())
+ if (m_operation_thread && m_operation_thread->IsJoinable())
return;
+ if (m_operation_thread)
+ m_operation_thread->Reset();
m_operation_thread =
ThreadLauncher::LaunchThread(g_thread_name, LaunchOpThread, args);
if (!m_operation_thread)
@@ -1412,7 +1416,7 @@
bool ProcessMonitor::WaitForInitialTIDStop(lldb::tid_t tid) { return true; }
void ProcessMonitor::StopOpThread() {
- if (!m_operation_thread->IsJoinable())
+ if (m_operation && !m_operation_thread->IsJoinable())
return;
m_operation_thread->Cancel();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68762.224256.patch
Type: text/x-patch
Size: 1915 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20191010/67371a18/attachment.bin>
More information about the lldb-commits
mailing list