1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/synchronization/cancellation_flag.h" 6 7 #include "base/logging.h" 8 9 namespace base { 10 11 void CancellationFlag::Set() { 12 #if !defined(NDEBUG) 13 DCHECK_EQ(set_on_, PlatformThread::CurrentId()); 14 #endif 15 base::subtle::Release_Store(&flag_, 1); 16 } 17 18 bool CancellationFlag::IsSet() const { 19 return base::subtle::Acquire_Load(&flag_) != 0; 20 } 21 22 void CancellationFlag::UnsafeResetForTesting() { 23 base::subtle::Release_Store(&flag_, 0); 24 } 25 26 } // namespace base 27