diff options
Diffstat (limited to 'include/my_pthread.h')
-rw-r--r-- | include/my_pthread.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/include/my_pthread.h b/include/my_pthread.h index 75e016169df..8650ed626c3 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -12,7 +12,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ /* Defines to make different thread packages compatible */ @@ -23,6 +23,8 @@ #define ETIME ETIMEDOUT /* For FreeBSD */ #endif +#include <my_atomic.h> + #ifdef __cplusplus #define EXTERNC extern "C" extern "C" { @@ -827,6 +829,26 @@ extern uint thd_lib_detected; #define statistic_sub(V,C,L) (V)-=(C) #endif /* SAFE_STATISTICS */ +static inline void thread_safe_increment32(int32 *value) +{ + (void) my_atomic_add32_explicit(value, 1, MY_MEMORY_ORDER_RELAXED); +} + +static inline void thread_safe_decrement32(int32 *value) +{ + (void) my_atomic_add32_explicit(value, -1, MY_MEMORY_ORDER_RELAXED); +} + +static inline void thread_safe_increment64(int64 *value) +{ + (void) my_atomic_add64_explicit(value, 1, MY_MEMORY_ORDER_RELAXED); +} + +static inline void thread_safe_decrement64(int64 *value) +{ + (void) my_atomic_add64_explicit(value, -1, MY_MEMORY_ORDER_RELAXED); +} + /* No locking needed, the counter is owned by the thread */ |