Revert of Relanding: Fixing crash that can occur if signal is modified while firing. (patchset #4 id:60001 of https://codereview.webrtc.org/2846593005/ )
Reason for revert: Breaks XmppConnectionTest in Chrome. https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_tsan_rel_ng/builds/65096 Original issue's description: > Relanding: Fixing crash that can occur if signal is modified while firing. > > The crash occurs if a slot causes the very next slot in iteration order > to be disconnected. > > Relanding after fixing a race condition that this CL revealed. Previously > the race resulted in an invalidated iterator, but now it will result in the > iterator being modified, so TSan catches it. > > BUG=webrtc:7527 > > Review-Url: https://codereview.webrtc.org/2846593005 > Cr-Original-Commit-Position: refs/heads/master@{#17943} > Committed:961c2adf1e> Review-Url: https://codereview.webrtc.org/2846593005 > Cr-Commit-Position: refs/heads/master@{#17965} > Committed:fc1af01557TBR=pthatcher@webrtc.org,deadbeef@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:7527 Review-Url: https://codereview.webrtc.org/2859443002 Cr-Commit-Position: refs/heads/master@{#17975}
This commit is contained in:
@ -144,6 +144,9 @@ class AsyncInvoker : public MessageHandler {
|
||||
// behavior is desired, call Flush() before destroying this object.
|
||||
void Flush(Thread* thread, uint32_t id = MQID_ANY);
|
||||
|
||||
// Signaled when this object is destructed.
|
||||
sigslot::signal0<> SignalInvokerDestroyed;
|
||||
|
||||
private:
|
||||
void OnMessage(Message* msg) override;
|
||||
void DoInvoke(const Location& posted_from,
|
||||
|
||||
Reference in New Issue
Block a user