我正在编写一个使用POSIX线程库的程序。我正在执行一些系统调用的返回值,例如:
if (pthread_join(temp, NULL) != 0) {
cerr << "system error\n" << endl;
exit(1);
}
我希望程序在满足if条件时立即退出,但是当cpu决定在“exit(1)”命令之前切换到不同的线程时可能会出问题。
有没有一种方法来解决这种情况?
使用特殊的互斥锁并不能帮助,因为:
1. 我有许多类似的调用,每个调用都要锁定,这会使代码非常缓慢,低效,并且大多数情况下会很难看!
2. 每个互斥锁都需要其自己的返回值检查!显然,这并不能解决最初的问题。。。
有没有帮助的想法?