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 
Set()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 
IsSet() const18 bool CancellationFlag::IsSet() const {
19   return base::subtle::Acquire_Load(&flag_) != 0;
20 }
21 
UnsafeResetForTesting()22 void CancellationFlag::UnsafeResetForTesting() {
23   base::subtle::Release_Store(&flag_, 0);
24 }
25 
26 }  // namespace base
27