Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, OpenGL, Вы писали:
OGL>>Дело в том что вызов write(audio_dev,...) является блокирующим, нужно чтобы он был асинхронным, то есть ждать события, или мютекса после того как все тыграется. Как это сделать собстенно , если вообще OSS и RH 9.1 это позволяют?
А>А если так: А> Два потока и защищённая от одновременного доступа очередь буфферов данных. А> Перевый готовит данные и ставит их в очередь. А> Второй поток пишет их в устройство (write). А> Очередь можно защитить обычными семафорами.
Я так и сделал, Все просто. Надо чтобы не один буффер ни улетел куда-нить. А то он где то через 1-2 минуты начинает пропускать блоки, идут щелчки. Нужен метод на подобие write только без блокировки, чтобы можно было точно дождаться конца проигрывания.