summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-10-23 23:27:15 +0200
committerRobin Gareus <robin@gareus.org>2015-10-23 23:29:04 +0200
commiteb6b4f4b15cd17f803efd9ad09ce5822ae0cdc76 (patch)
treeaa6a7ad740c6edddaa60f424f8b6a18f704b735a
parent90aec831cbfd9013c1204cb24c2e55f2830c95ab (diff)
fix crash on SystemExec::Terminate
if Terminated() connects in the same thread and deletes the class itself the closure in interposer_thread() can fail.
-rw-r--r--libs/pbd/system_exec.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/libs/pbd/system_exec.cc b/libs/pbd/system_exec.cc
index d92987bf21..02e4ddcd85 100644
--- a/libs/pbd/system_exec.cc
+++ b/libs/pbd/system_exec.cc
@@ -530,6 +530,7 @@ SystemExec::output_interposer()
ReadStdout(data, bytesRead);/* EMIT SIGNAL */
}
Terminated();/* EMIT SIGNAL */
+ pthread_exit(0);
}
void
@@ -896,6 +897,7 @@ SystemExec::output_interposer()
ReadStdout(rv, r);/* EMIT SIGNAL */
}
Terminated();/* EMIT SIGNAL */
+ pthread_exit(0);
}
void