summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-05-24 03:27:27 +0200
committerRobin Gareus <robin@gareus.org>2016-05-24 03:33:08 +0200
commit7aa85887da16aca9d54a693bbaf6353a5b3fa99f (patch)
treeb4dc35c3730f9874e86b433f01c08387a7994002 /libs/ardour/session.cc
parentcd5cd2f8f29e9b99942cbb232f622ad3ab074fc1 (diff)
more inter-thread progress fixes; slight change of semantics:
Background thread now *must* set "done" as last step. (they already do since various error conditions don't result in "done") This fixes a race: background thread Session::write_one_track() sets "done" to true. Editor::freeze_route () continues, sets current_interthread_info to NULL. thread continues and tries to set current_interthread_info.done before terminating -> Crash. This also ensures that singleton threads created with "pthread_create_and_store" remain unique.
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r--libs/ardour/session.cc1
1 files changed, 0 insertions, 1 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 98d9d1dfd9..4097335f5b 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -5919,7 +5919,6 @@ Session::write_one_track (Track& track, framepos_t start, framepos_t end,
}
unblock_processing ();
- itt.done = true;
return result;
}