[linux-audio-dev] jack_callback <-> rest of the world
Stéphane Letz
letz at grame.fr
Wed Nov 2 13:22:20 UTC 2005
Le 2 nov. 05 à 14:05, Alfons Adriaensen a écrit :
> On Wed, Nov 02, 2005 at 01:57:47PM +0100, St?phane Letz wrote:
>
>>> So if there are N clients, each of them needs N file descriptors
>>> open
>>> all the time. System wide the complexity grows as N^2. Not really a
>>> good way to tackle an O(N) problem IMHO.
>>
>> Yes but in the jackdmp data flow kind of model, the actual activation
>> order is only known when the graph executes.
>> Or do you have a better idea to do that?
>
> Yes, don't use named semas, but 'anonymous' ones placed in memory
> shared by all clients. Each new client gets two pointers, one to the
> sema it has to wait on (fixed for the client's lifetime), and one it
> has to signal (changes when the graph is reordered).
But in a data flow model, a given client may have to signal several
semaphores. And the client that actually signals the semaphore is
only known at activation time. For the following graph for example :
--> A
IN --> C
--> B
where A and B can run in parallel, C is activated by the *last*
client of A and B that finish its processing. Thus A and B have to
"know" the C semaphore.
More generally a given client would have to keep a set of semaphores
it may have to signal for a given graph topology. This could improve
the N*N issue but is more difficult to handle.
>
> But of course if OSX doesn't have them, then it's impossible...
>
And OSX does not support them, so i guess we will keep the current
(simple...) implementation in jackdmp until the problem you describe
becomes a real one in real situations...
Stephane
More information about the Linux-audio-dev
mailing list