[webkit-changes] [WebKit/WebKit] 98f239: REGRESSION (275262 at main): Unable to play games in ...
Jer Noble
noreply at github.com
Fri Mar 1 02:04:51 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 98f2399f9450976e2a8a780e73f6b1263b18ac15
https://github.com/WebKit/WebKit/commit/98f2399f9450976e2a8a780e73f6b1263b18ac15
Author: Jer Noble <jer.noble at apple.com>
Date: 2024-03-01 (Fri, 01 Mar 2024)
Changed paths:
M Source/WebCore/platform/audio/SharedAudioDestination.cpp
Log Message:
-----------
REGRESSION (275262 at 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
More information about the webkit-changes
mailing list