Мое приложение использует ALSA с функцией обратного вызова для воспроизведения выбранного фрагмента звука.Иногда это просто зависает.Я почти 2 дня отлаживал его и, наконец, обнаружил, что функция обратного вызова ALSA вызывается, когда она уже выполняется.Я поймал это, используя:
void MyALSACallback()
{
std::cout << "1"; std::cout.flush();
// ... snd_pcm_writei() call ... //
// ... no any returns ... //
std::cout << "2"; std::cout.flush();
return;
}
Приложение зависает, когда у меня напечатана последовательность «11».«121212 ...» находится на консоли, когда приложение живо и воспроизводится звук.
Как это может произойти?