Henrik Boström
1dddaa1a84
[PeerConnection] Use an OperationsChain in PeerConnection for async ops.
...
For background, motivation, requirements and implementation notes, see
https://docs.google.com/document/d/1XLwNN2kUIGGTwz9LQ0NwJNkcybi9oKnynUEZB1jGA14/edit?usp=sharing
Using the OperationsChain will unblock future CLs from chaining multiple
operations together such as implementing parameterless
setLocalDescription().
In this CL, the OperationsChain is used in existing signaling operations
with little intended side-effects. An operation that is chained onto an
empty OperationsChain will for instance execute immediately, and
SetLocalDescription() and SetRemoteDescription() are implemented as
"synchronous operations".
The lifetime of the PeerConnection is not indended to change as a result
of this CL: All chained operations use a raw pointer to the PC that is
ensured not to be used-after-free using an "IsAlive" object.
There is one notable change though: CreateOffer() and CreateAnswer() will
asynchronously delay other signaling methods from executing until they
have completed.
Drive-by fix: This CL also ensures that early failing
CreateOffer/CreateAnswer operation's observers are invoked if the
PeerConnection is destroyed while a PostCreateSessionDescriptionFailure
is pending.
Bug: webrtc:11019
Change-Id: I521333e41d20d9bbfb1e721609f2c9db2a5f93a9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157305
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29605}
2019-10-25 07:39:34 +00:00
..
2019-09-18 16:27:44 +00:00
2019-09-16 21:29:58 +00:00
2019-09-16 21:29:58 +00:00
2019-04-08 16:58:07 +00:00
2019-01-25 20:29:58 +00:00
2019-10-25 07:39:34 +00:00
2019-01-28 18:56:02 +00:00
2019-09-17 15:47:29 +00:00
2019-09-17 15:47:29 +00:00
2019-09-13 10:49:56 +00:00
2019-10-10 18:33:07 +00:00
2019-10-07 23:01:28 +00:00
2019-10-07 23:01:28 +00:00
2019-09-24 22:35:44 +00:00
2019-10-01 12:23:19 +00:00
2019-09-17 15:47:29 +00:00
2019-07-08 13:45:15 +00:00
2019-06-07 20:14:36 +00:00
2019-07-08 13:45:15 +00:00
2019-09-17 15:47:29 +00:00
2019-07-31 13:19:08 +00:00
2019-08-29 15:56:40 +00:00
2019-09-13 10:49:56 +00:00
2019-01-28 11:17:00 +00:00
2019-09-17 15:47:29 +00:00
2019-07-08 13:45:15 +00:00
2019-01-11 17:11:39 +00:00
2019-09-17 15:47:29 +00:00
2019-04-12 08:29:59 +00:00
2019-04-16 07:28:06 +00:00
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00
2019-01-11 17:11:39 +00:00
2019-01-11 17:11:39 +00:00
2019-01-11 17:11:39 +00:00
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00
2019-04-02 10:13:36 +00:00
2019-09-17 15:47:29 +00:00
2019-04-09 09:12:10 +00:00
2019-01-30 16:16:51 +00:00
2019-04-18 19:11:31 +00:00
2019-04-18 19:11:31 +00:00
2019-07-08 13:45:15 +00:00
2019-04-18 19:11:31 +00:00
2019-04-18 19:11:31 +00:00
2019-09-17 15:47:29 +00:00
2019-09-17 15:47:29 +00:00
2019-10-14 12:40:53 +00:00
2019-09-30 23:10:34 +00:00
2019-10-14 12:40:53 +00:00
2019-10-14 12:40:53 +00:00
2019-09-24 17:10:52 +00:00
2019-09-30 23:10:34 +00:00
2019-09-30 23:10:34 +00:00
2019-01-11 17:11:39 +00:00
2019-01-11 17:11:39 +00:00
2019-01-25 20:29:58 +00:00
2019-05-13 18:37:47 +00:00
2019-05-13 18:37:47 +00:00
2019-10-15 14:45:58 +00:00
2019-10-15 14:45:58 +00:00
2019-09-30 23:10:34 +00:00
2019-01-29 02:33:50 +00:00
2019-01-25 20:29:58 +00:00
2019-01-11 17:11:39 +00:00
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00
2019-01-25 20:29:58 +00:00
2019-08-19 22:37:51 +00:00
2019-09-17 15:47:29 +00:00
2019-09-17 15:47:29 +00:00
2019-09-24 17:10:52 +00:00
2019-09-24 08:30:24 +00:00
2019-07-08 13:45:15 +00:00
2019-09-17 15:47:29 +00:00
2019-09-13 10:49:56 +00:00
2019-09-17 15:47:29 +00:00
2019-09-17 15:47:29 +00:00
2019-10-14 12:40:53 +00:00
2019-10-14 19:08:23 +00:00
2019-03-27 18:14:00 +00:00
2019-10-21 20:47:16 +00:00
2019-09-17 15:47:29 +00:00
2019-09-17 15:47:29 +00:00
2019-09-17 15:47:29 +00:00
2019-10-25 07:39:34 +00:00
2019-09-17 15:47:29 +00:00
2019-10-14 12:40:53 +00:00
2019-10-14 12:40:53 +00:00
2019-10-25 07:39:34 +00:00
2019-10-25 07:39:34 +00:00
2019-04-09 17:18:20 +00:00
2019-09-17 15:47:29 +00:00
2019-04-18 19:11:31 +00:00
2019-10-23 07:46:39 +00:00
2019-10-23 07:46:39 +00:00
2019-05-27 12:45:22 +00:00
2019-10-23 07:46:39 +00:00
2019-04-09 17:18:20 +00:00
2019-05-27 12:45:22 +00:00
2019-01-25 20:29:58 +00:00
2019-01-11 17:11:39 +00:00
2019-01-11 17:11:39 +00:00
2019-01-11 17:11:39 +00:00
2019-07-08 13:45:15 +00:00
2019-04-16 12:04:33 +00:00
2019-04-16 12:04:33 +00:00
2019-07-08 13:45:15 +00:00
2019-05-24 12:44:14 +00:00
2019-01-11 17:11:39 +00:00
2019-07-08 13:45:15 +00:00
2019-09-16 21:29:58 +00:00
2019-09-17 15:47:29 +00:00
2019-07-26 17:52:49 +00:00
2019-05-20 18:38:06 +00:00
2019-01-11 17:11:39 +00:00
2019-05-01 20:14:59 +00:00
2019-05-01 20:14:59 +00:00
2019-05-24 23:58:46 +00:00
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00
2019-05-24 23:58:46 +00:00
2019-09-24 17:10:52 +00:00
2019-10-01 12:23:19 +00:00
2019-09-17 15:47:29 +00:00
2019-05-21 10:24:41 +00:00
2019-05-21 10:24:41 +00:00
2019-04-09 17:18:20 +00:00
2019-09-24 17:10:52 +00:00
2019-10-01 12:23:19 +00:00
2019-07-08 13:45:15 +00:00
2019-04-09 21:19:31 +00:00
2019-01-11 17:11:39 +00:00
2019-10-14 12:40:53 +00:00
2019-01-11 17:11:39 +00:00
2019-09-17 15:47:29 +00:00
2019-07-08 13:45:15 +00:00
2019-10-15 09:07:44 +00:00
2019-07-08 13:45:15 +00:00
2019-01-11 17:11:39 +00:00
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00
2019-01-11 17:11:39 +00:00
2019-07-08 13:45:15 +00:00
2019-10-11 13:11:11 +00:00
2019-10-11 13:11:11 +00:00
2019-09-17 15:47:29 +00:00
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00
2019-10-15 10:43:59 +00:00
2019-10-15 10:43:59 +00:00
2019-10-15 10:43:59 +00:00
2019-01-11 17:11:39 +00:00
2019-09-02 14:04:47 +00:00
2019-01-28 09:53:50 +00:00
2019-01-11 17:11:39 +00:00
2019-02-05 15:12:20 +00:00
2019-08-28 13:22:08 +00:00
2019-09-24 08:56:24 +00:00
2019-06-24 08:50:07 +00:00
2019-09-16 21:29:58 +00:00
2019-09-16 21:29:58 +00:00
2019-07-08 13:45:15 +00:00
2019-01-11 17:11:39 +00:00
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00
2019-01-25 20:29:58 +00:00
2019-09-30 23:10:34 +00:00
2019-09-30 23:10:34 +00:00
2019-04-02 10:13:36 +00:00
2019-09-17 15:47:29 +00:00
2019-07-08 13:45:15 +00:00