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 ?
--
FA