g++和pthread编译优化慎用...

今天使用了pthread的程序Release后运行报错:

 

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

但是Debug下就没事,郁闷了,google半天,大家都说是glibc的Bug。后来分析了一下,估计又是编译优化过了。。。
 
果然把-O3换成-O0后,再也不出错了。。。
我的g++版本是4.3.3,如果有后续版本修复了这个Bug,欢迎大家留言报告,谢谢!

Leave a Reply

Your email address will not be published. Required fields are marked *