DescriptionAllow cross-thread destruction of RTCSessionDescriptionRequest objects.
ligjingle may queue incoming CreateOffer/Answer session requests from
the browser process. Should the RTC session be shut down before those
requests have been processed & queue is drained, the libjingle thread
will destruct these requests as part the session shutdown. (See
associated bug for stack trace of when&how this happens.)
Embedded in those requests are references to Oilpan heap objects, by way
of Persistent<RTCSessionDescriptionRequest>. As Persistent<>s are thread
local, requiring that the thread that created & registered them is the
one that finalizes, the destruction performed by the libjingle thread
runs into trouble.
Hence, allow libjingle to destruct CreateSessionDescriptionRequests by
having WebRTCSessionDescriptionRequests refer to the Oilpan Blink object
by way of a CrossThreadPersistent<>. It imposes no same-thread restriction
wrt destruction.
R=haraken, tommi, philipj
BUG=537745
Committed: https://crrev.com/b16338dd1caf186c3601ce4dcd209670e9f2f36f
Cr-Commit-Position: refs/heads/master@{#351783}
Patch Set 1 #
Messages
Total messages: 16 (6 generated)
|