Я работаю над главой об аудио iPhone и наткнулся на фрагмент кода, который мне не понятен:
while (aqc.playPtr < aqc.sampleLen)
{
select(NULL, NULL, NULL, NULL, 1.0);
}
( Полный пример кода на страницах 163-166 ).Исходя из того, что я понимаю в коде, аудио обрабатывается в другом потоке, и цикл while предназначен только для предотвращения завершения основного потока во время обработки аудио.
Что я не понимаю, так это почемуselect()
используется вместо sleep()
.
Из того, что я прочитал, select()
используется для отслеживания изменений в вводе-выводе, и передача NULL не делает ничего значимого.Я запустил код, используя sleep()
, и он работает, как ожидалось.(Мои знания о POSIX низкого уровня практически не существуют.)