• Sébastien Villemot's avatar
    Dynare++: fix bug in new threading code · 3e5b4084
    Sébastien Villemot authored
    At the end of a thread, we must first notify the main thread waiting on the
    condition variable, then unlock the mutex. We must do these two operations in
    that order, otherwise there is a possibility of having the main process
    destroying the condition variable before the thread tries to notify it (if all
    other threads terminate at the same time and bring the counter down to zero).
    For that reason, we cannot use std::notify_all_at_thread_exit().
    Bug introduced in commit 752a02a3.
sthread.cc 1.71 KB