Mercurial > irccd
changeset 393:f53d8e683276
Irccd: block timer destruction signal to avoid inifinite lock
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 26 Dec 2016 14:24:44 +0100 |
parents | 0be0f1b863eb |
children | c6fbb6e0e06d |
files | libirccd-js/irccd/timer.cpp |
diffstat | 1 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/libirccd-js/irccd/timer.cpp Fri Dec 23 13:47:24 2016 +0100 +++ b/libirccd-js/irccd/timer.cpp Mon Dec 26 14:24:44 2016 +0100 @@ -19,6 +19,8 @@ #include <cassert> #include <chrono> +#include <iostream> + #include "timer.hpp" namespace irccd { @@ -65,8 +67,13 @@ assert(m_state != Running); try { - m_state = Stopped; - m_condition.notify_one(); + { + std::lock_guard<std::mutex> lk(m_mutex); + + m_state = Stopped; + m_condition.notify_one(); + } + m_thread.join(); } catch (...) { }