关于pthread_mutex_init的几点思考
- 使用pthread_mutexattr_t对mutex进行设置属性时,不要忘记调用pthread_mutexattr_destroy,否则会出现pthread_mutex_init调用失败,可能会返回EOPNOTSUPP(95 Operation not supported on transport endpoint),如下:
pthread_mutexattr_t mAttr;
pthread_mutexattr_settype(&mAttr, PTHREAD_MUTEX_RECURSIVE_NP);
int err = pthread_mutex_init( &myId, &mAttr );
pthread_mutexattr_destroy(&mAttr);
关于tpp.c:63: __pthread_tpp_change_priority failed,分析中也没有给出具体的原因,上网搜也没有搜到个所以然,解决办法就是利用上面的办法在mutex初始化设置mutex为PTHREAD_MUTEX_RECURSIVE_NP。
。。。未完待续