diff options
author | Robin Gareus <robin@gareus.org> | 2016-05-24 03:27:27 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-05-24 03:33:08 +0200 |
commit | 7aa85887da16aca9d54a693bbaf6353a5b3fa99f (patch) | |
tree | b4dc35c3730f9874e86b433f01c08387a7994002 /libs/ardour/session.cc | |
parent | cd5cd2f8f29e9b99942cbb232f622ad3ab074fc1 (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.cc | 1 |
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; } |