mirror of
				https://github.com/bytecodealliance/wasm-micro-runtime.git
				synced 2025-10-27 03:11:18 +00:00 
			
		
		
		
	 0f4edf9735
			
		
	
	
		0f4edf9735
		
			
		
	
	
	
	
		
			
			We have observed a significant performance degradation after merging https://github.com/bytecodealliance/wasm-micro-runtime/pull/1991 Instead of protecting suspend flags with a mutex, we implement the flags as atomic variable and only use mutex when atomics are not available on a given platform.
		
			
				
	
	
		
			15 lines
		
	
	
		
			568 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			15 lines
		
	
	
		
			568 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2023 Amazon.com, Inc. or its affiliates. All rights reserved.
 | |
|  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 | |
|  */
 | |
| 
 | |
| #if !defined(__GNUC_PREREQ) && (defined(__GNUC__) || defined(__GNUG__)) \
 | |
|     && !defined(__clang__) && defined(__GNUC_MINOR__)
 | |
| /* Depending on the platform the macro is defined in sys/features.h or
 | |
|    features.h Given the macro is simple, we re-implement it here instead of
 | |
|    dealing with two different paths.
 | |
|  */
 | |
| #define __GNUC_PREREQ(maj, min) \
 | |
|     ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
 | |
| #endif
 |