Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 98f2399f9450976e2a8a780e73f6b1263b18ac15
https://github.com/WebKit/WebKit/commit/98f2399f9450976e2a8a780e73f6b1263b18ac15
Author: Jer Noble <[email protected]>
Date: 2024-03-01 (Fri, 01 Mar 2024)
Changed paths:
M Source/WebCore/platform/audio/SharedAudioDestination.cpp
Log Message:
-----------
REGRESSION (275262@main): Unable to play games in PBS Kids Games app
https://bugs.webkit.org/show_bug.cgi?id=270284
rdar://123811318
Reviewed by Chris Dumez.
The SharedAudioDestinationAdapter's configuration queue would become stuck,
waiting on
a semaphore which would never be triggered. This appears to be a latent bug in
the
RemoteAudioDestinationProxy/Manager, but one that has dire implications now that
SharedAudioDestination depends on its Adapter's render() method being called.
Rather than block on a Semaphore to ensure the Adapter is configured before
calling
the completion handlers, simply pass the completion handler into the Adapter's
inner destination's start() or stop() methods. Only when the Adapter is already
started
(or when it's stopped and does not need to be restarted) should the completion
handler get called explicitly.
Now that blocking is not needed, neither is the Adapter's configuration queue;
all
the setup for configuration can happen on the main thread.
* Source/WebCore/platform/audio/SharedAudioDestination.cpp:
(WebCore::SharedAudioDestinationAdapter::protectedWorkBus):
(WebCore::SharedAudioDestinationAdapter::~SharedAudioDestinationAdapter):
(WebCore::SharedAudioDestinationAdapter::addRenderer):
(WebCore::SharedAudioDestinationAdapter::removeRenderer):
(WebCore::SharedAudioDestinationAdapter::configureRenderThread):
(WebCore::SharedAudioDestinationAdapter::callAllConfigurationHandlers):
(WebCore::SharedAudioDestinationAdapter::render):
(WebCore::SharedAudioDestinationAdapter::protectedConfigurationQueue): Deleted.
(WebCore::m_configurationSemaphore): Deleted.
Canonical link: https://commits.webkit.org/275542@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