- 949 名前:949 mailto:sage [2024/10/29(火) 21:14:42.30 ID:DeRlzLOn.net]
- で、本当の問題は、condition_variable::wait_for()の述語バージョンのコードでして
諸般の事情でネットから拾ってきたコードを一部変更して書きますと(たぶんインデントが 壊れますが、ご了承ください) #include <iostream> #include <thread> #include <mutex> #include <condition_variable> #include <chrono> #include <atomic> std::mutex mtx; std::condition_variable cv; std::atomic<bool> ready = false; void wait_for_event() { std::unique_lock<std::mutex> lock(mtx); cv.wait_for(lock, std::chrono::seconds(3), []{ return ready; }); std::cout << "Event occurred or timeout reached" << std::endl; } int main(void) { std::thread worker(wait_for_event); worker.join(); return 0; }
|

|