周五,调试设备,发现起机偶尔死机,看了下死机信息:

tpp.c:63: __pthread_tpp_change_priority: Assertion `new_prio == -1 || (new_prio >= __sched_fifo_min_prio && new_prio      <=          __sched_fifo_max_prio)' failed.

跟了下代码,发现是报警模块初始化时, 调用pthread_mutex_lock死机的。

理了下代码流程:

pthread_mutexattr_t mutAttr;

/** 发现至少缺少了对mutAttr属性的初始化 */

pthread_mutexattr_settype(&mutAttr, PTHREAD_MUTEX_RECURSIVE_NP);
       pthread_mutex_init(&g_motionTaskInfo.timerMutex, &mutAttr);

发现是对锁做递归锁属性的设置时,没有对mutexattr初始化,

改为:

pthread_mutexattr_t mutAttr;

memset(&mutAttr, 0, sizeof(pthread_mutexattr_t));
       pthread_mutexattr_init(&mutAttr);

pthread_mutexattr_settype(&mutAttr, PTHREAD_MUTEX_RECURSIVE_NP);
       pthread_mutex_init(&g_motionTaskInfo.timerMutex, &mutAttr);

至此,问题解决。

解决互斥锁lock,报tpp.c:63: __pthread_tpp_change_priority: Assertion异常相关推荐

  1. Python 进程互斥锁 Lock - Python零基础入门教程

    目录 一.Python 线程互斥锁和进程互斥锁 1.创建线程互斥锁 2.创建进程互斥锁 二.进程互斥锁 Lock 函数介绍 三.进程互斥锁 Lock 使用 案例一:使用进程,但不使用互斥锁 案例二:进 ...

  2. Python 线程互斥锁 Lock - Python零基础入门教程

    目录 一.前言 二.Python 线程共享全局变量 三.Python 线程互斥锁 1.创建互斥锁 2.锁定资源/解锁资源 四.Python 线程死锁 五.重点总结 六.猜你喜欢 一.前言 在前一篇文章 ...

  3. 由 tpp.c:63: __pthread_tpp_change_priority failed 引发的思考

    早上在测试一个程序的时候,同事发现了我们的程序出现了 tpp.c:63: __pthread_tpp_change_priority failed的错误报告.当时同事查了这方面的资料,发现是线程互斥锁 ...

  4. goroutine sync.Mutex互斥锁Lock的使用

  5. Python 多线程总结(2)— 线程锁、线程池、线程数量、互斥锁、死锁、线程同步

    主要介绍使用 threading 模块创建线程的 3 种方式,分别为: 创建 Thread 实例函数 创建 Thread 实例可调用的类对象 使用 Thread 派生子类的方式 多线程是提高效率的一种 ...

  6. 【C++】多线程与互斥锁【二】

    文章目录 1. 并发是什么 1.1 并发与并行 1.2 硬件并发与任务切换 1.3 多线程并发与多进程并发 2. 为什么使用并发 2.1 为什么使用并发 2.2 并发和多线程 3. 并发需要注意的问题 ...

  7. Linux内核的并发与竞态、信号量、互斥锁、自旋锁

    /************************************************************************************ *本文为个人学习记录,如有错 ...

  8. 线程同步(互斥锁、条件、读写锁、信号量)

    参考:(四十三)线程--线程同步(互斥锁.读写锁.条件变量.信号量) 作者:FadeFarAway 发布时间:2017-01-17 21:25:28 网址:https://blog.csdn.net/ ...

  9. C++ 线程同步之互斥锁

    文章目录 1.简介 2.std::mutex 3.线程同步 4.std::lock_guard 5.std::recursive_mutex-少用 6.std::timed_mutex 1.简介 进行 ...

最新文章

  1. leetcode题目解答报告(1)
  2. 再次搬家到自建博客http://www.wikieee.com/blog/leiad/homepage
  3. 使用sphinx快速为你python注释生成API文档
  4. java callable用法_在Java中使用Callable和Future
  5. JS编程建议——32:使用制表
  6. 如何实现一个楼中楼的评论系统
  7. Python 竟能绘制如此酷炫的三维图
  8. 从一开始,说出事java匿名内部类
  9. TreeNode.trage的使用
  10. Activiti(6.0)任务管理服务TaskaskService
  11. 覆盖Dispatch响应消息
  12. MyBatis学习总结(三)---映射文件及引入方式
  13. Tensorflow的最佳实践
  14. nginx 过滤请求URL参数及重定向
  15. python爬虫-基础入门-python爬虫突破封锁
  16. 微信小程序+SpringBoot+mybatis+MySQL实现简单的登录
  17. (最小生成树)Codeforces Educational Codeforces Round 9 Magic Matrix
  18. 指针数组,数组指针,函数指针,指针函数,函数指针数组
  19. unity代码混淆及帧同步服务器、常用软件记录
  20. ubuntu10.04换官方源

热门文章

  1. 数据挖掘导论(Pang-Ning Tan)习题记录
  2. python填补缺失值数据驱动代码_python填补缺失值数据驱动代码_python数据预处理之缺失值的各种填补方式...
  3. Innovus——数据准备和验证
  4. 如何利用蜂鸣器制作MIDI音乐
  5. 一个完美的JS加密和解密程序
  6. SCCB协议 verilog状态机定时器
  7. java jsoup 多线程爬虫Miner
  8. c语言散转指令,按键C语言.doc
  9. windows下的grep
  10. 利用stm32+app inventor与esp8266通信