Assertion 'pa_atomic_load(&(p)->_ref) > 0' failed at pulsecore/pstream.c

在使用alsa-lib进行语音对讲的开发时,总是在关闭的时候出现以下错误:

'''Assertion 'pa_atomic_load(&(p)->_ref) > 0' failed at pulsecore/pstream.c'''

造成这个的错误的原因是播放线程有一个sem信号量等待,有时候结束时的没有播放的数据,一直在这个地方等待,播放线程无法退出。造成了下次播放时数据错误,引起崩溃。

解决的办法是在结束的函数中通知信号量,使播放线程继续运行。这样就能安全的退出了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 线程基础 线程是进程的一个执行单元,执行一段程序片段,线程共享全局变量;线程的查看可以使用命令或者文件来进行查看;...
    秋风弄影阅读 4,064评论 0 0
  • A2A integration [,inti'ɡreiʃən] A2A整合 abstract ['æbstræk...
    朱森阅读 4,671评论 0 4
  • call back 一般指函数的回调session会话(NSURLSession,AVCaptureSession...
    单线程Jack阅读 2,900评论 0 1
  • 1.1线程的概念 线程-隶属于进程,是进程中的程序流 在操作系统中支持多进程的,而每个进程的内部支持多个线程,多个...
    vera姐姐阅读 1,794评论 0 0
  • OSSpinLock OSSpinLock 不再安全,主要原因发生在低优先级线程拿到锁时,高优先级线程进入忙等(b...
    GAME666阅读 5,084评论 0 0