Re[2]: Асинхронный I/O со звуковым устройством.
От: OpenGL  
Дата: 28.04.04 11:10
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, OpenGL, Вы писали:


OGL>>Дело в том что вызов write(audio_dev,...) является блокирующим, нужно чтобы он был асинхронным, то есть ждать события, или мютекса после того как все тыграется. Как это сделать собстенно , если вообще OSS и RH 9.1 это позволяют?


А>А если так:

А> Два потока и защищённая от одновременного доступа очередь буфферов данных.
А> Перевый готовит данные и ставит их в очередь.
А> Второй поток пишет их в устройство (write).
А> Очередь можно защитить обычными семафорами.

Я так и сделал, Все просто. Надо чтобы не один буффер ни улетел куда-нить. А то он где то через 1-2 минуты начинает пропускать блоки, идут щелчки. Нужен метод на подобие write только без блокировки, чтобы можно было точно дождаться конца проигрывания.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.