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

原创 2015年07月11日 09:15:05


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

      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);


       至此,问题解决。 


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

早上在测试一个程序的时候,同事发现了我们的程序出现了 tpp.c:63: __pthread_tpp_change_priority failed的错误报告。当时同事查了这方面的资料,发现是线程互斥锁...
  • tietao
  • tietao
  • 2012年07月30日 23:34
  • 4868

pthread_mutex_lock的实现!!

找了好久的pthread_mutex_lock函数的实现原理,,现粘贴如下。。。int__pthread_mutex_lock (mutex)     pthread_mutex_t *mutex;{...
  • hzhzh007
  • hzhzh007
  • 2011年06月10日 01:43
  • 16810

Java assertion 介绍和用法

一、assertion的语法和语义 J2SE 1.4在语言上提供了一个新特性,就是assertion(断言)功能,它是该版本在Java语言方面最大的革新。在软件开发中,assertion是一种经典的...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年12月28日 23:29
  • 742

assertion 断言验证的一点介绍

断言验证     断言验证就是在模拟中引入形式特征检查的验证方法。用这种方法,设计师编码时插入对特征的描述—断言。代码完成后,进行模拟以检查断言,并修改模拟时断言发现的问题。最后,特征检查根...
  • limanjihe
  • limanjihe
  • 2016年08月22日 10:10
  • 666

VS2010 MFC:“Debug Assertion Failed!” ——自动生成的单文档程序项目编译运行就有错

VS2010,单文档应用程序,项目文件命名为File,也就有了自动生成的CFileDoc、CFileView等类,一进去就编译运行(就是最初自动生成的项目),编译通过,可运行时直接弹出错误框: Deb...
  • duobaodaoren456
  • duobaodaoren456
  • 2017年07月26日 23:07
  • 305

SDL中的互斥量和条件变量

一、概述        在最简单的音视频播放器中,由于解复用和解码是在不同的线程中,存放包的队列是公共资源,需要互斥。解复用向队列添加包,解码从队列取包,也需要同步。所以队列的入队和出队操作,采用了...
  • GAMEloft9
  • GAMEloft9
  • 2015年06月24日 17:24
  • 832

Java并发编程与技术内幕:聊聊锁的技术内幕(上)

在Java并发编程里头,锁是一个非常重要的概念。就如同现实生活一样,如果房子上了锁。别人就进不去。Java里头如果一段代码取得了一个锁,其它地方再想去这个锁(或者再执行这个相同的代码)就都得等待锁释放...
  • Evankaka
  • Evankaka
  • 2016年07月11日 07:41
  • 11541

C#多线程学习(九)lock,Monitor,Mutex的区别

lock和Monitor的区别 一、lock的底层本身是Monitor来实现的,所以Monitor可以实现lock的所有功能。 二、Monitor有TryEnter的功能,可以防止出现死锁的问题,...
  • liming850628
  • liming850628
  • 2016年02月23日 15:30
  • 1191

C++线程锁封装

C++线程锁的封装,主要提供lock,unlock,require等操作,需要注意的是线程重复获取锁的问题,设置了一个count的计数器,该计算器之所以不考虑++,--的原子操作的问题,是因为该计数器...
  • turkeyzhou
  • turkeyzhou
  • 2013年02月22日 18:20
  • 2243

OpenCV 中有时正常有时报错(assertion failed)的解决办法

I met this strange problem from time to time, the programs runs sometimes but some times it throws o...
  • bennygato
  • bennygato
  • 2014年07月15日 00:54
  • 4303
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决互斥锁lock,报tpp.c:63: __pthread_tpp_change_priority: Assertion异常
举报原因:
原因补充:

(最多只允许输入30个字)