> I don't understand. The pulse plugin calls pa_stream_drain(), and > pulse_wait_operation() to wait until the drain finishes. What does it > have to do with threading? As far as I understand you patch io->data->callback->drain() will not be called in nonblocking mode. + if (io->data->state == SND_PCM_STATE_DRAINING) { + if (io->data->nonblock) + return -EAGAIN; + + if (io->data->callback->drain) { + err = io->data->callback->drain(io->data); + if (err < 0) + return err; + } + } Therefore how should call pa_stream_drain() in case of nonblocking mode? Best regards Timo _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel