On Wed, May 20, 2009 at 04:43:33PM -0500, Jack O'Quin wrote: > On Wed, May 20, 2009 at 2:38 PM, Fons Adriaensen <[email protected]> wrote: > > > You don't need this jackd. If all the IPC is in libjack, an > > autostart request can be passed directly to jackcontrol without > > creating a transient process. > > > > 1. Client uses jack_client_open() with autostart. > > 2. Libjack doesn't find the server > > 3. Libjack sends 'start server' to jackcontrol > > 4. jackcontrol starts the server > > 5. jackcontrol notifies libjack > > 6. The jack_client_open() call proceeds. > > > > Between 3 and 5 the thread doing the original call > > (i.e. the client's thread) just waits within libjack > > for the ok/fail message from jackcontrol. > > Don't forget a timeout in case the fork/exec fails and there is no message.
The fork/exec is done by jackcontrol, if it fails then jackcontrol reports this and the entire jack_client_open() is made to fail. A timeout is required to cover the case that jackcontrol isn't there (but that can be tested before the start server request), or it crashes doing the fork/exec, but in the latter case there are bigger problems anyway. Ciao, -- FA Io lo dico sempre: l'Italia è troppo stretta e lunga. _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
