summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/session.h
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-10-25 02:00:08 +0200
committerRobin Gareus <robin@gareus.org>2018-10-25 02:00:08 +0200
commit5599cdb911a9bbbd3f3f82a5d71ac7a850cb2d08 (patch)
tree767e01a5f262d9c643881c8f3d5b5d33ea7f8ea0 /libs/ardour/ardour/session.h
parentd53f49acf463dc77883a5b562feaeb4f0ef5009f (diff)
Fix race-condition/deadlock, plugin-copy while rolling
lili93's session (#ardour) triggered this w/jackd 512fpp: Drag/Drop copy a latent plugin from one track to another while rolling. The GUI-thread as well as the auto-connect thread concurrently call jack_recompute_total_latencies(). The auto-connect thread holds a process lock while doing so. The GUI does not use any mutexes. This randomly deadlocks in libjack. backtrace: https://pastebin.com/6m3KGhWS
Diffstat (limited to 'libs/ardour/ardour/session.h')
-rw-r--r--libs/ardour/ardour/session.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index c18b76a984..b5997a3a83 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -1540,6 +1540,8 @@ private:
ChanCount output_offset;
};
+ Glib::Threads::Mutex _update_latency_lock;
+
typedef std::queue<AutoConnectRequest> AutoConnectQueue;
Glib::Threads::Mutex _auto_connect_queue_lock;
AutoConnectQueue _auto_connect_queue;