1. Prevents deadlocks from AsyncInvoker destructor
2. Makes future state() calls are guaranteed to return the new state after
SetState() completes.
I am not sure if it is allowed to call FireOnChanged from non-signaling
threads so I will leave the post for now.
Bug: webrtc:10813
Change-Id: I5712a45f71431765898037867382397d537570a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147727
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28741}