| Index: media/gpu/ipc/client/gpu_jpeg_decode_accelerator_host.cc
|
| diff --git a/media/gpu/ipc/client/gpu_jpeg_decode_accelerator_host.cc b/media/gpu/ipc/client/gpu_jpeg_decode_accelerator_host.cc
|
| index 1afe39c3db273df7c5e728c9d4cceb61e15e41f3..fca7a5b7741e500bcc18d6ebda152630076e6747 100644
|
| --- a/media/gpu/ipc/client/gpu_jpeg_decode_accelerator_host.cc
|
| +++ b/media/gpu/ipc/client/gpu_jpeg_decode_accelerator_host.cc
|
| @@ -118,11 +118,14 @@ GpuJpegDecodeAcceleratorHost::~GpuJpegDecodeAcceleratorHost() {
|
| // routed to |receiver_| on IO thread.
|
| base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| - io_task_runner_->PostTask(FROM_HERE,
|
| - base::Bind(&Receiver::InvalidateWeakPtr,
|
| - base::Unretained(receiver_.get()),
|
| - base::Unretained(&event)));
|
| - event.Wait();
|
| + bool task_expected_to_run = io_task_runner_->PostTask(
|
| + FROM_HERE, base::Bind(&Receiver::InvalidateWeakPtr,
|
| + base::Unretained(receiver_.get()),
|
| + base::Unretained(&event)));
|
| + // If the current call is happening during the browser shutdown, the
|
| + // |io_task_runner_| may no longer be accepting tasks.
|
| + if (task_expected_to_run)
|
| + event.Wait();
|
| }
|
| }
|
|
|
|
|