检查pthread可取消状态

时间:2018-03-04 12:52:33

标签: c pthreads

看到我可以使用pthread_setcancelstate来设置给定pthread的可取消性。 (启用或禁用它)。 但是,我无法找到匹配的" pthread_getcancelstate"用于检查给定pthread的可取消状态的函数。任何建议都将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

http://man7.org/linux/man-pages/man3/pthread_setcanceltype.3.html

根据手册页设置一个状态也会得到它所配置的oldstate .. 在这方面,一个简单的get操作可以设置一个状态,然后将状态设置回oldstate - 我怀疑这会影响你的逻辑

您在第二次调用时设置的状态是线程所处的状态:

int curr_state;
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &curr_state);
pthread_setcancelstate(curr_state, NULL);
//curr_state is the result of your required get