Re: [linux-audio-dev] jack_callback <-> rest of the world

From: Stéphane Letz <letz@email-addr-hidden>
Date: Wed Nov 02 2005 - 12:56:59 EET

Le 2 nov. 05 à 11:29, Alfons Adriaensen a écrit :

> On Wed, Nov 02, 2005 at 11:05:34AM +0100, St?phane Letz wrote:
>>
>> Le 31 oct. 05 à 02:18, fons adriaensen a écrit :
>>
>>> A big advantage of using futexes in shared memory would be
>>> that they don't have to be recreated each time the callback
>>> order changes - unlike the pipes, they are not bound to a
>>> process, and to modify the 'trigger chain' all you need is
>>> to change some pointers.
>>>
>>
>> In Jackdmp we have tested 2 system for inter-process synchronization:
>> fifo (the way it was done in regular jackd) and POSIX named semaphore
>> (which are built on top of futex on recent system version)
>>
>> In both cases, each already running client get access to the
>> synchronization primitive (fifo or POSIX named sema) defined by a new
>> coming client. The synchronization primitive is "opened" once when a
>> new client appears and is "closed" when the client quits. The
>> synchronization primitive that has to be signaled then depends of the
>> graph topology.
>
> I must be missing something essential here. Access to named things
> that have to be opened is normally by a file descriptor, and file
> descriptors are bound a process. How then can you give *all* clients
> access to the named pipe or sema created for a new client ?
>
> -

The synchronization primitive is actually created by the server when
a new client register. Then a client identifier (built using the
actual client name) is transfered to all running clients that will
define/access the synchronization primitive in their own process.

Stephane
Received on Wed Nov 2 16:15:06 2005

This archive was generated by hypermail 2.1.8 : Wed Nov 02 2005 - 16:15:06 EET