Re: [LAD] [Jack-Devel] session management API proposal, take 3 (fwd)

PrevNext  Index
DateFri, 05 Mar 2010 08:07:17 -0600
From Gabriel M. Beddingfield <[hidden] at gmail dot com>
ToLAD list <[hidden] at lists dot linuxaudio dot org>, LAU list <[hidden] at lists dot linuxaudio dot org>
All:

Based on some of the recent discussions on LAD and LAU, I 
thought it prudent to forward this message from the 
Jack-Devel list.

If you wish to continue the discussion on the the Jack 
session management API, please do it on the Jack-Devel list. 
Scroll down to the very bottom for a URL to the list.

-gabriel

---------- Forwarded message ----------
Date: Thu, 4 Mar 2010 18:16:39 -0500
From: Paul Davis <[hidden]>
To: [hidden]
Subject: Re: [Jack-Devel] session management API proposal, take 3

[ ... chatter chatter chatter ... ]

i'm on the verge of approving the API proposed by Torben for inclusion
as part of the JACK API. I believe that it accomplishes the goal of
leveraging an existing IPC channel (via libjack), combined with a
minimalistic set of changes to the server and easy-to-implement
support in clients, to provide the basis for session management at
different levels of sophistication, depending on a user's needs.
Torben's example showed the generation of a shell script that will
restart the session, and this is probably the "bottom line" in terms
of simple session management.

There are still some details (below) but more importantly, I would
like to hear from people who have concrete objections, particularly of
the following form:

    * the proposal does not address some functionality that it should address
    * the proposal will make later, more extensive session management
harder, more complex or impossible
    * the proposal is nonsensical because ...

As for details...

I agree with the suggestion that the initial set of session events
should include "quit".

Nedko has also raised some objections to the use of a UUID, and has
proposed a scheme based on PIDs. I personally do not understand how
this can possibly work if JACK is to retain the ability to support
multiple clients per process. Any scheme designed to use PIDs but
still allow this seems to me to have to turn the PID into a UUID by
combining it with some other information (eg. a client name). This
doesn't seem to be semantically different from starting with a
declaration that we use UUIDs to identify clients - how the UUIDs are
constructed is an implementation detail.

Finally, the semantics of the return codes from a session event need
to be pinned down better, since there are circumstances where a client
could *not* save its state without that being an error (e.g. ardour
running with a session on read-only media). For this, I currently
propose:

     success == client believes that it will be able to restore its
state to the current state upon a reload
     fail = client believes that it will not (or may not) be able to
restore its state to the current state upon a reload

similar semantics will be needed for each other defined session event.
PrevNext  Index

1267798068.22971_0.ltw:2,a <alpine.DEB.1.10.1003050800550.22678 at localhost dot localdomain>