From 1dd1264944306e9948a669a1fe0ff8bfad113bae Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Thu, 12 Apr 2018 12:56:29 -0700 Subject: [PATCH] [async] Adapt to libasync API changes. (#4980) --- content_handler/vulkan_surface.cc | 21 +++++++++------------ content_handler/vulkan_surface.h | 8 ++++---- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/content_handler/vulkan_surface.cc b/content_handler/vulkan_surface.cc index 6d5df488542..466f0a6e8d6 100644 --- a/content_handler/vulkan_surface.cc +++ b/content_handler/vulkan_surface.cc @@ -44,8 +44,7 @@ VulkanSurface::VulkanSurface(vulkan::VulkanProvider& vulkan_provider, wait_.set_object(release_event_.get()); wait_.set_trigger(ZX_EVENT_SIGNALED); - async_ = async_get_default(); - wait_.Begin(async_); + wait_.Begin(async_get_default()); // Probably not necessary as the events should be in the unsignalled state // already. @@ -56,11 +55,8 @@ VulkanSurface::VulkanSurface(vulkan::VulkanProvider& vulkan_provider, VulkanSurface::~VulkanSurface() { ASSERT_IS_GPU_THREAD; - if (async_) { - wait_.Cancel(async_); - wait_.set_object(ZX_HANDLE_INVALID); - async_ = nullptr; - } + wait_.Cancel(); + wait_.set_object(ZX_HANDLE_INVALID); } bool VulkanSurface::IsValid() const { @@ -410,15 +406,16 @@ void VulkanSurface::Reset() { } } -async_wait_result_t VulkanSurface::OnHandleReady(async_t* async, - zx_status_t status, - const zx_packet_signal_t* signal) { +void VulkanSurface::OnHandleReady(async_t* async, + async::WaitBase* wait, + zx_status_t status, + const zx_packet_signal_t* signal) { ASSERT_IS_GPU_THREAD; if (status != ZX_OK) - return ASYNC_WAIT_FINISHED; + return; FXL_DCHECK(signal->observed & ZX_EVENT_SIGNALED); Reset(); - return ASYNC_WAIT_AGAIN; + wait->Begin(async); } } // namespace flutter_runner diff --git a/content_handler/vulkan_surface.h b/content_handler/vulkan_surface.h index 41a807af81f..c8e7d2c06d4 100644 --- a/content_handler/vulkan_surface.h +++ b/content_handler/vulkan_surface.h @@ -70,9 +70,10 @@ class VulkanSurface : public flow::SceneUpdateContext::SurfaceProducerSurface { } private: - async_wait_result_t OnHandleReady(async_t* async, - zx_status_t status, - const zx_packet_signal_t* signal); + void OnHandleReady(async_t* async, + async::WaitBase* wait, + zx_status_t status, + const zx_packet_signal_t* signal); bool AllocateDeviceMemory(sk_sp context, const SkISize& size, @@ -106,7 +107,6 @@ class VulkanSurface : public flow::SceneUpdateContext::SurfaceProducerSurface { vulkan::VulkanHandle acquire_semaphore_; std::unique_ptr command_buffer_; zx::event release_event_; - async_t* async_; async::WaitMethod wait_; std::function pending_on_writes_committed_; size_t age_ = 0;