mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 6ed6b85ece
			
		
	
	
		6ed6b85ece
		
	
	
	
	
		
			
			Now we need atomic operations, which are lighter than mutex, more widely for extension libraries because of Ractor.
		
			
				
	
	
		
			23 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "ruby/atomic.h"
 | |
| 
 | |
| /* shim macros only */
 | |
| #define ATOMIC_ADD(var, val) RUBY_ATOMIC_ADD(var, val)
 | |
| #define ATOMIC_CAS(var, oldval, newval) RUBY_ATOMIC_CAS(var, oldval, newval)
 | |
| #define ATOMIC_DEC(var) RUBY_ATOMIC_DEC(var)
 | |
| #define ATOMIC_EXCHANGE(var, val) RUBY_ATOMIC_EXCHANGE(var, val)
 | |
| #define ATOMIC_FETCH_ADD(var, val) RUBY_ATOMIC_FETCH_ADD(var, val)
 | |
| #define ATOMIC_FETCH_SUB(var, val) RUBY_ATOMIC_FETCH_SUB(var, val)
 | |
| #define ATOMIC_INC(var) RUBY_ATOMIC_INC(var)
 | |
| #define ATOMIC_OR(var, val) RUBY_ATOMIC_OR(var, val)
 | |
| #define ATOMIC_PTR_CAS(var, oldval, newval) RUBY_ATOMIC_PTR_CAS(var, oldval, newval)
 | |
| #define ATOMIC_PTR_EXCHANGE(var, val) RUBY_ATOMIC_PTR_EXCHANGE(var, val)
 | |
| #define ATOMIC_SET(var, val) RUBY_ATOMIC_SET(var, val)
 | |
| #define ATOMIC_SIZE_ADD(var, val) RUBY_ATOMIC_SIZE_ADD(var, val)
 | |
| #define ATOMIC_SIZE_CAS(var, oldval, newval) RUBY_ATOMIC_SIZE_CAS(var, oldval, newval)
 | |
| #define ATOMIC_SIZE_DEC(var) RUBY_ATOMIC_SIZE_DEC(var)
 | |
| #define ATOMIC_SIZE_EXCHANGE(var, val) RUBY_ATOMIC_SIZE_EXCHANGE(var, val)
 | |
| #define ATOMIC_SIZE_INC(var) RUBY_ATOMIC_SIZE_INC(var)
 | |
| #define ATOMIC_SIZE_SUB(var, val) RUBY_ATOMIC_SIZE_SUB(var, val)
 | |
| #define ATOMIC_SUB(var, val) RUBY_ATOMIC_SUB(var, val)
 | |
| #define ATOMIC_VALUE_CAS(var, oldval, val) RUBY_ATOMIC_VALUE_CAS(var, oldval, val)
 | |
| #define ATOMIC_VALUE_EXCHANGE(var, val) RUBY_ATOMIC_VALUE_EXCHANGE(var, val)
 |