diff --git a/src/account.cpp b/src/account.cpp index 0efbb8e3c60db6faae663956f125c54ed5935bb6..4d25ef5c11e83a9ff4aefa528a090edc6f998482 100644 --- a/src/account.cpp +++ b/src/account.cpp @@ -158,15 +158,21 @@ Account::setRegistrationState(RegistrationState state, unsigned detail_code, con if (state != registrationState_) { registrationState_ = state; // Notify the client - emitSignal<DRing::ConfigurationSignal::RegistrationStateChanged>( - accountID_, - mapStateNumberToString(registrationState_), - detail_code, - detail_str); - - emitSignal<DRing::ConfigurationSignal::VolatileDetailsChanged>( - accountID_, - getVolatileAccountDetails()); + runOnMainThread([ + accountId = accountID_, + state = mapStateNumberToString(registrationState_), + detail_code, + detail_str, + details = getVolatileAccountDetails() + ]{ + emitSignal<DRing::ConfigurationSignal::RegistrationStateChanged>( + accountId, + state, + detail_code, + detail_str); + + emitSignal<DRing::ConfigurationSignal::VolatileDetailsChanged>(accountId, details); + }); } }