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

Reply via email to