diff options
author | Robin Gareus <robin@gareus.org> | 2015-10-23 23:27:15 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-10-23 23:29:04 +0200 |
commit | eb6b4f4b15cd17f803efd9ad09ce5822ae0cdc76 (patch) | |
tree | aa6a7ad740c6edddaa60f424f8b6a18f704b735a | |
parent | 90aec831cbfd9013c1204cb24c2e55f2830c95ab (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.cc | 2 |
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 |