Paul Davis wrote:
> 
> i had a couple of hours today to work on the multiprocess
> audioengine. its now doing its basic tasks of starting a server on a
> socket, accepting new connections from clients, waking periodically
> from poll(2), telling its clients to do some work, etc. note that i
> short-circuited the design used by abramo, in that clients notify each
> other when they are done instead of constantly switching back to the
> engine. this is partly why i am using kill(2) instead of write(2) -

I don't understand of what you're speaking: in my design for multi
process model the switch back to the engine happens only once for each
period (as it's needed).

> its easy to shuffle a set of PIDs to be signalled to match the
> processing graph; getting each client to have an fd to talk to every
> other client is far from trivial.

If you're thinking to change connection graph preserving component
processes the only way is either:
1) to use named pipes
2) to pass file descriptors using UNIX socket.

The latter is the more elegant option IMO (and more safe), and you may
use the same communication channel you need between engine and
components.

Note also that signals may have some non atomicity troubles.

-- 
Abramo Bagnara                       mailto:[EMAIL PROTECTED]

Opera Unica                          Phone: +39.546.656023
Via Emilia Interna, 140
48014 Castel Bolognese (RA) - Italy

ALSA project               http://www.alsa-project.org
It sounds good!

Reply via email to