forked from mirrors/gecko-dev
		
	 2cad8de361
			
		
	
	
		2cad8de361
		
	
	
	
	
		
			
			This updates security/sandbox/chromium/ files to chromium commit 84108231f6e6e0772fb9a4643679ce76aa771e67. Existing and new patches applied from security/sandbox/chromium-shim/patches/with_update/ to give a compiling and mostly working browser. See patch files for additional commit comments. --HG-- rename : security/sandbox/chromium-shim/base/debug/debugging_flags.h => security/sandbox/chromium-shim/base/debug/debugging_buildflags.h rename : security/sandbox/chromium-shim/base/win/base_features.h => security/sandbox/chromium-shim/base/win/base_win_buildflags.h
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			960 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			960 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (c) 2012 The Chromium Authors. All rights reserved.
 | |
| // Use of this source code is governed by a BSD-style license that can be
 | |
| // found in the LICENSE file.
 | |
| 
 | |
| #ifndef BASE_ATOMIC_SEQUENCE_NUM_H_
 | |
| #define BASE_ATOMIC_SEQUENCE_NUM_H_
 | |
| 
 | |
| #include <atomic>
 | |
| 
 | |
| #include "base/macros.h"
 | |
| 
 | |
| namespace base {
 | |
| 
 | |
| // AtomicSequenceNumber is a thread safe increasing sequence number generator.
 | |
| // Its constructor doesn't emit a static initializer, so it's safe to use as a
 | |
| // global variable or static member.
 | |
| class AtomicSequenceNumber {
 | |
|  public:
 | |
|   constexpr AtomicSequenceNumber() = default;
 | |
| 
 | |
|   // Returns an increasing sequence number starts from 0 for each call.
 | |
|   // This function can be called from any thread without data race.
 | |
|   inline int GetNext() { return seq_.fetch_add(1, std::memory_order_relaxed); }
 | |
| 
 | |
|  private:
 | |
|   std::atomic_int seq_{0};
 | |
| 
 | |
|   DISALLOW_COPY_AND_ASSIGN(AtomicSequenceNumber);
 | |
| };
 | |
| 
 | |
| }  // namespace base
 | |
| 
 | |
| #endif  // BASE_ATOMIC_SEQUENCE_NUM_H_
 |