在使用alsa-lib进行语音对讲的开发时,总是在关闭的时候出现以下错误:
'''Assertion 'pa_atomic_load(&(p)->_ref) > 0' failed at pulsecore/pstream.c'''
造成这个的错误的原因是播放线程有一个sem信号量等待,有时候结束时的没有播放的数据,一直在这个地方等待,播放线程无法退出。造成了下次播放时数据错误,引起崩溃。
解决的办法是在结束的函数中通知信号量,使播放线程继续运行。这样就能安全的退出了。
在使用alsa-lib进行语音对讲的开发时,总是在关闭的时候出现以下错误:
'''Assertion 'pa_atomic_load(&(p)->_ref) > 0' failed at pulsecore/pstream.c'''
造成这个的错误的原因是播放线程有一个sem信号量等待,有时候结束时的没有播放的数据,一直在这个地方等待,播放线程无法退出。造成了下次播放时数据错误,引起崩溃。
解决的办法是在结束的函数中通知信号量,使播放线程继续运行。这样就能安全的退出了。