|
@@ -1126,12 +1126,13 @@ bool PeerConnection::changeState(State newState) {
|
|
|
s << newState;
|
|
|
PLOG_INFO << "Changed state to " << s.str();
|
|
|
|
|
|
- if (newState == State::Closed)
|
|
|
- stateChangeCallback(State::Closed); // synchronous
|
|
|
- else
|
|
|
+ if (newState == State::Closed) {
|
|
|
+ auto callback = std::move(stateChangeCallback); // steal the callback
|
|
|
+ callback(State::Closed); // call it synchronously
|
|
|
+ } else {
|
|
|
mProcessor.enqueue(&PeerConnection::trigger<State>, shared_from_this(), stateChangeCallback,
|
|
|
newState);
|
|
|
-
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|