3 Nov 2007 15:22
[Jackit-devel] [PATCH] new jack_rdlock_graph () for null_cycle-less qjackctl client connections polling
Karsten Wiese <annabellesgarden <at> yahoo.de>
2007-11-03 14:22:34 GMT
2007-11-03 14:22:34 GMT
Hi, hope the subject says it all(Continue reading)The null-cycles caused by qjackctl's client connections polling happen here with ccrma versions qjackctl 0.2.22 and jackd 0.103.0. Patch against 0.103.0 replaces pthread_mutex_t client_lock; by pthread_rwlock_t client_lock; , updates all existing users and introduces 2 new functions void jack_rdlock_graph (); and jack_try_rdlock_graph (); tested on fedora 7, no null_cycles anymore caused by qjackctl. That is, as long as the graph stays unchanged of course. Hope it applies to trunk as well. kind regards, signed-off-by Karsten ---------------------------------------------------------------------> diff -pur jack-audio-connection-kit-0.103.0_orig/jack/engine.h jack-audio-connection-kit-0.103.0/jack/engine.h --- jack-audio-connection-kit-0.103.0_orig/jack/engine.h 2007-04-01 00:26:35.000000000 +0200 +++ jack-audio-connection-kit-0.103.0/jack/engine.h 2007-11-03 12:32:14.000000000 +0100 <at> <at> -76,7 +76,7 <at> <at> struct _jack_engine { /* engine serialization -- use precedence for deadlock avoidance */
The null-cycles caused by qjackctl's client connections polling
happen here with ccrma versions qjackctl 0.2.22 and jackd 0.103.0.
Patch against 0.103.0 replaces
pthread_mutex_t client_lock;
by
pthread_rwlock_t client_lock;
, updates all existing users and introduces 2 new functions
void jack_rdlock_graph ();
and
jack_try_rdlock_graph ();
tested on fedora 7, no null_cycles anymore caused by qjackctl.
That is, as long as the graph stays unchanged of course.
Hope it applies to trunk as well.
kind regards, signed-off-by
Karsten
--------------------------------------------------------------------->
diff -pur jack-audio-connection-kit-0.103.0_orig/jack/engine.h jack-audio-connection-kit-0.103.0/jack/engine.h
--- jack-audio-connection-kit-0.103.0_orig/jack/engine.h 2007-04-01 00:26:35.000000000 +0200
+++ jack-audio-connection-kit-0.103.0/jack/engine.h 2007-11-03 12:32:14.000000000 +0100
<at> <at> -76,7 +76,7 <at> <at> struct _jack_engine {
/* engine serialization -- use precedence for deadlock avoidance */
RSS Feed