webrtc::PeerConnection has blocking methods?

41 views
Skip to first unread message

lambros...@chromium.org

unread,
Dec 13, 2017, 3:01:18 AM12/13/17
to discuss-webrtc
In Chrome Remote Desktop, when making WebRTC connections, we are running into some Chromium DCHECKs within the PeerConnection in remoting/protocol/webrtc_transport.cc:
Check failed: !g_base_sync_primitives_disallowed.Get().Get()

This appears to be because PeerConnection::SetLocalDescription() and PeerConnection::SetRemoteDescription() make some calls to blocking sync primitives in Chromium's //base .

Details in this Chromium bug. Also posted on chromium-dev, waiting for a response there.

Is it expected that these calls might be blocking on other threads?
Is it wrong to try to use PeerConnection on a network thread that disallows blocking I/O ?

If we refactor to call these methods on a different thread, is it acceptable to use PeerConnection on 2 different threads? Or should we refactor so that the PeerConnection object is only used on a single thread which allows blocking operations?

Thanks!

Reply all
Reply to author
Forward
0 new messages