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

Stéphane Letz letz at grame.fr
Wed Nov 2 11:26:20 UTC 2005


Le 2 nov. 05 à 11:48, Florian Schmidt a écrit :

> On Wed, 2 Nov 2005 11:05:34 +0100
> Stéphane Letz <letz at grame.fr> wrote:
>
>> 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.
>>
>>> But ISTR that OSX only has named shared futexes (i.e. accessed
>>> via a file descriptor), and then of course the problem remains.
>>
>> On OSX, on can use Mach semaphore (internal and non portable...)
>> POSIX named semaphore or fifo.
>>
>> Stephane
>
> What results did you get? Did the semaphore perform better/worse than
> the fifo? What about pthread condition variables with pshared flag  
> set?
> I read somewhere it should be implemented by now (at least on 2.6
> systems).
>
> Flo
>

On Linux, the semaphore is a bit faster than fifo.
On OSX we have in speed order : Mach semaphore, POSIX semaphore, fifo

I've not tested the pthread condition variables with pshared flag  
set, it should probably work also on recent 2.6 kernel. But i guess  
all primitives are built on top of futex APi on the end.

Stephane




More information about the Linux-audio-dev mailing list