Hi, so far, some pcm operator callbacks are assumed to be atomic. but looking at the code, this restriction seems coming only from the rwlock of linked streams.
there are some hardwares which need (idally) the non-atomic operations for prepare and trigger. they usually require the ack as the command completion. and we implemented it in the busy loop or by ignoring the ack. i think the stream-link lock can be replaced with rw_semaphore, so that prepare and trigger callbacks can be non-atomic. the only critical part is, as far as i see, that snd_pcm_stop() may be called from interrupt handler when xrun/suspend happens. this cannot handle the semaphore, of course. i have still no concrete idea how to solve this... any suggestions? btw, if the trigger can take too long time, we should implement this into two seprate parts: the trigger and the post-trigger. the trigger would be issued and return immediately, and the post-trigger would take care of the completion of commands. Takashi ------------------------------------------------------- This SF.net email is sponsored by: VM Ware With VMware you can run multiple operating systems on a single machine. WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the same time. Free trial click here: http://www.vmware.com/wl/offer/345/0 _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel