Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 454579957b8a62fdfdaa6a23642d9e612b227f60
https://github.com/WebKit/WebKit/commit/454579957b8a62fdfdaa6a23642d9e612b227f60
Author: Philippe Normand <[email protected]>
Date: 2025-10-10 (Fri, 10 Oct 2025)
Changed paths:
M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
M Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
Log Message:
-----------
[GStreamer][WebRTC] Potential deadlocks when attempting to close the
connection while adding ICE candidates
https://bugs.webkit.org/show_bug.cgi?id=300444
Reviewed by Xabier Rodriguez-Calvar.
The descriptionsFromWebRTCBin() call made while handling the
add-ice-candidate-full GstPromise was
inducing a PC_LOCK whithin webrtcbin's get_property handler. This could race
with the PC_LOCK
attempt in webrtcbin's close signal handler. So we asynchronously schedule
these operations to the
main thread.
Also slightly related, the pipeline dumps are now performed asynchronously in
the WebRTC end-point,
also because they imply webrtcbin PC_LOCK acquisitions.
* Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
(WebCore::GStreamerMediaEndpoint::initializePipeline):
(WebCore::GStreamerMediaEndpoint::addIceCandidate):
(WebCore::GStreamerMediaEndpoint::prepareForClose):
(WebCore::GStreamerMediaEndpoint::close):
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::dumpPipelineAsynchronously):
(WebCore::connectSimpleBusMessageCallback):
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h:
(WebCore::connectSimpleBusMessageCallback):
Canonical link: https://commits.webkit.org/301308@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes