From d772981fd6feca0308c485375de4191d6634658c Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Thu, 8 Mar 2018 22:33:14 +0100 Subject: [PATCH] Revert "Use C11's atomic_flag." stdatomic.h is missing in gcc 4.8 This reverts commit ff4d8d0fbe1feb59a8799632af047771a78f1718. --- src/xbt/mallocator.c | 8 ++++---- src/xbt/mallocator_private.h | 5 ++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/xbt/mallocator.c b/src/xbt/mallocator.c index f12abcd3a9..ec32f179c5 100644 --- a/src/xbt/mallocator.c +++ b/src/xbt/mallocator.c @@ -1,6 +1,6 @@ /* mallocator - recycle objects to avoid malloc() / free() */ -/* Copyright (c) 2006-2018. The SimGrid Team. +/* Copyright (c) 2006-2017. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -40,13 +40,13 @@ static int initialization_done = 0; static inline void lock_reset(xbt_mallocator_t m) { - atomic_flag_clear(&m->lock); + m->lock = 0; } static inline void lock_acquire(xbt_mallocator_t m) { if (initialization_done > 1) { - while (atomic_flag_test_and_set(&m->lock)) + while (__atomic_test_and_set(&m->lock, __ATOMIC_ACQUIRE)) /* nop */; } } @@ -54,7 +54,7 @@ static inline void lock_acquire(xbt_mallocator_t m) static inline void lock_release(xbt_mallocator_t m) { if (initialization_done > 1) - atomic_flag_clear(&m->lock); + __atomic_clear(&m->lock, __ATOMIC_RELEASE); } /** diff --git a/src/xbt/mallocator_private.h b/src/xbt/mallocator_private.h index 90b5f8800d..ccd5b5237d 100644 --- a/src/xbt/mallocator_private.h +++ b/src/xbt/mallocator_private.h @@ -1,6 +1,6 @@ /* mallocator - recycle objects to avoid malloc() / free() */ -/* Copyright (c) 2006-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2006-2017. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -8,7 +8,6 @@ #ifndef XBT_MALLOCATOR_PRIVATE_H #define XBT_MALLOCATOR_PRIVATE_H -#include #include typedef struct s_xbt_mallocator { @@ -18,7 +17,7 @@ typedef struct s_xbt_mallocator { pvoid_f_void_t new_f; /* function to call when we are running out of objects */ void_f_pvoid_t free_f; /* function to call when we have got too many objects */ void_f_pvoid_t reset_f; /* function to call when an object is released by the user */ - atomic_flag lock; /* lock to ensure the mallocator is thread-safe */ + char lock; /* lock to ensure the mallocator is thread-safe */ } s_xbt_mallocator_t; #endif -- 2.20.1