[oss-devel] Some questions about SNDCTL_DSP_SYNCSTART
Hannu Savolainen
hannu at opensound.com
Sun Jun 8 02:11:42 EEST 2008
Zakhar Levchenko wrote:
> Saying about multi process issues I meant the following situation:
> Suppose a souncard has 3 sub-devices 1, 2, 3.
> There are two processes that create two different syncgroups, the
> first group contains only subdevices 1 and 2, the second group
> contains only subdevice 3.
> Suppose they try to start their syncgroups in parallel, suppose
> sync_controls are executed in the following order:
> SYNC_PREPARE for sub-device 1 (1st process)
> SYNC_PREPARE for sub-device 2 (1st process)
> SYNC_PREPARE for sub-device 3 (2nd process)
Ok so far.
> SYNC_TRIGGER for sub-device 1 (1st process)
> SYNC_TRIGGER for sub-device 3 (2nd process)
> SYNC_TRIGGER for sub-device 2 (1st process)
> (the last two calls are executed in "reversed" order)
This is impossible. 1st process can only call SYNC_TRIGGER for
sub-device 1 which is the group head for the sync group it has created.
This call will start sub-device 1&2 which share the same group ID.
SYNC_TRIGGER for sub device 2 will fail because the group has already
been started.
Process 2 cannot call SYNC_TRIGGER for any of the other devices (3).
2nd process can only start sub-device 3. This is completely independent
from what the 1st process has done.
So process 1 can start sub-devices 1&2. Process 2 can start only
sub-device 3. Process 1 cannot touch sub-device 3 and process 2 cannot
touch 1&2.
Best regards,
Hannu
More information about the oss-devel
mailing list