On Mon, 4 Oct 2004 14:29:49 +0200 Florian Schmidt <mista.tapas@xxxxxxx> wrote: > > Actually, that's not entirely correct. I've been talking to Paul > > about this. The xruns created by exiting clients is due to jackd > > having to rework it's internals. When doing this reordering, jackd > > has to lock the data it's modifying and sometimes (very often) there > > will be an xrun because the audio thread is waiting for the lock to > > be released. > > > > Ah, and btw: Shouldn't the audio thread just try the lock and if it > fails to claim it produce a period of silence? What spot in the code > is this? Hmm, it looks like jack is already doing this. See jack_run_one_cycle() in jackd/engine.c:2351. if (jack_try_lock_graph (engine)) { /* engine can't run. just throw away an entire cycle */ driver->null_cycle (driver, nframes); return 0; } maybe there are other places though which just lock and block as result.. flo