diff --git a/src/mqtt/client.h b/src/mqtt/client.h index 7b7d19c..eeeec7f 100644 --- a/src/mqtt/client.h +++ b/src/mqtt/client.h @@ -68,17 +68,17 @@ class client : private callback // Most are launched in a separate thread, for convenience, except // message_arrived, for performance. void connected(const string& cause) override { - std::async(std::launch::async, &callback::connected, userCallback_, cause); + std::async(std::launch::async, &callback::connected, userCallback_, cause).wait(); } void connection_lost(const string& cause) override { std::async(std::launch::async, - &callback::connection_lost, userCallback_, cause); + &callback::connection_lost, userCallback_, cause).wait(); } void message_arrived(const_message_ptr msg) override { userCallback_->message_arrived(msg); } void delivery_complete(delivery_token_ptr tok) override { - std::async(std::launch::async, &callback::delivery_complete, userCallback_, tok); + std::async(std::launch::async, &callback::delivery_complete, userCallback_, tok).wait(); } /** Non-copyable */