mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-03-12 17:05:38 +00:00

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
|