< Previous by Date | Date Index | Next by Date > |
Thread Index | Next in Thread > |
Hi all, if(!isTerminated()) // make sure application didn't call end() { dispatchConnected(msg); // act as if we received message in Connected state } else { dispatchTerminated(msg); } But imagine that the application did not call end() from onOfferRequestRejected but pushed an event for another thread (in my case I call it CallManager). In this case, the !isTerminated test will pass and dispatchConnected
will be executed. Inside this method, there is this code: *mLastRemoteSessionModification = msg; transition(ReceivedReinvite); If the context switches to the other thread before transition(ReceivedReinvite) and my CallManager thread sends a BYE (calls end()), the code would end up in the same situation when receiving the 200-OK for the BYE and
would crash (assert(0)). |