| Index: gpu/command_buffer/common/discardable_handle.cc
|
| diff --git a/gpu/command_buffer/common/discardable_handle.cc b/gpu/command_buffer/common/discardable_handle.cc
|
| index 987ad821f4508025b1e56665ca4ab7ed0671a82f..d7fa9cd642cd6cde1164ca724cb7e3358f8b2473 100644
|
| --- a/gpu/command_buffer/common/discardable_handle.cc
|
| +++ b/gpu/command_buffer/common/discardable_handle.cc
|
| @@ -30,11 +30,11 @@ DiscardableHandleBase& DiscardableHandleBase::operator=(
|
| DiscardableHandleBase& DiscardableHandleBase::operator=(
|
| DiscardableHandleBase&& other) = default;
|
|
|
| -bool DiscardableHandleBase::IsLockedForTesting() {
|
| +bool DiscardableHandleBase::IsLockedForTesting() const {
|
| return kHandleLockedStart <= base::subtle::NoBarrier_Load(AsAtomic());
|
| }
|
|
|
| -bool DiscardableHandleBase::IsDeletedForTesting() {
|
| +bool DiscardableHandleBase::IsDeletedForTesting() const {
|
| return kHandleDeleted == base::subtle::NoBarrier_Load(AsAtomic());
|
| }
|
|
|
| @@ -114,4 +114,11 @@ bool ServiceDiscardableHandle::Delete() {
|
| AsAtomic(), kHandleUnlocked, kHandleDeleted);
|
| }
|
|
|
| +void ServiceDiscardableHandle::ForceDelete() {
|
| + // No barrier is needed as all GPU process access happens on a single thread,
|
| + // and communication of dependent data between the GPU process and the
|
| + // renderer process happens across the command buffer and includes barriers.
|
| + base::subtle::NoBarrier_Store(AsAtomic(), kHandleDeleted);
|
| +}
|
| +
|
| } // namespace gpu
|
|
|