sti*_*ima 8 c++ posix signals c++11
std::condition_variable::notify_one在信号处理程序中使用是否安全?例:
enum State {
DoNot,
Do,
};
State state;
std::mutex mutex;
// worker thread
std::thread th = std::thread([]()
{
std::unique_lock<std::mutex> lc(mutex);
cv.wait(lc, []() { return state; });
});
//signal handler
void handler(int sig)
{
if (sig == SOME_SIG)
{
std::unique_lock<std::mutex> lc(mutex);
state = Do;
cv.notify_one();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |