线程通过alsa播放音乐

guoke312 2016-05-09 10:05:03


长时间运行会报pthread_mutex_lock.c312:_pthread_mutex_lock_full.....找了好久请教什么问题?
...全文
259 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
LubinLew 2016-05-10
  • 打赏
  • 举报
回复
代码贴出来,要不就把锁的用法贴出来
guoke312 2016-05-10
  • 打赏
  • 举报
回复
client: pthread_mutex_lock.c:321: __pthread_mutex_lock_full: Assertion `robust || (oldval & 0x40000000) == 0' failed. 一直是这个错
guoke312 2016-05-10
  • 打赏
  • 举报
回复
线程取消是立即取消,没有用到锁。
LubinLew 2016-05-10
  • 打赏
  • 举报
回复
要取消的线程有取消点吗,线程取消时的做清理工作了吗 锁都释放了吗
guoke312 2016-05-10
  • 打赏
  • 举报
回复
就是封装一个线程,然后主线程切换歌曲时在cancel,
 if (m_ThreadID > 0)
  void Thread::Cancel()  {
        threadStatus = THREAD_STATUS_EXIT;


        if(0 !=pthread_cancel(m_ThreadID))
            perror("cancel");

        cout << "thread cancel22 " << endl;
        pthread_join(m_ThreadID, NULL);
        m_ThreadID = 0;

        cout << "thread cancel " << endl;

    }
guoke312 2016-05-10
  • 打赏
  • 举报
回复
void Thread::Cancel() { if (m_ThreadID > 0) { threadStatus = THREAD_STATUS_EXIT; if(0 !=pthread_cancel(m_ThreadID)) perror("cancel"); cout << "thread cancel22 " << endl; pthread_join(m_ThreadID, NULL); m_ThreadID = 0; cout << "thread cancel " << endl; } }

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧