diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-03-19 00:40:18 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-03-19 00:40:18 +0100 |
commit | 332c0bf4bca963ee6f104634349546864ecf62e5 (patch) | |
tree | 39be1f60467d76297ee86d4b03832c1581ca0efd | |
parent | bdfd1c0880b74b0f02cbd5a16dd1b1316f33fd5c (diff) |
Remove bits/memory.h
* sysdeps/generic/pt-once.c: Include <atomic.h> instead of
<bits/memory.h>
(__pthread_once): Use atomic_full_barrier instead of __memory_barrier.
* sysdeps/i386/bits/memory.h: Remove file.
-rw-r--r-- | sysdeps/generic/pt-once.c | 6 | ||||
-rw-r--r-- | sysdeps/i386/bits/memory.h | 39 |
2 files changed, 3 insertions, 42 deletions
diff --git a/sysdeps/generic/pt-once.c b/sysdeps/generic/pt-once.c index da1e1e6..a3a139a 100644 --- a/sysdeps/generic/pt-once.c +++ b/sysdeps/generic/pt-once.c @@ -17,14 +17,14 @@ not, see <http://www.gnu.org/licenses/>. */ #include <pthread.h> -#include <bits/memory.h> +#include <atomic.h> #include <pt-internal.h> int __pthread_once (pthread_once_t *once_control, void (*init_routine) (void)) { - __memory_barrier (); + atomic_full_barrier (); if (once_control->__run == 0) { __pthread_spin_lock (&once_control->__lock); @@ -32,7 +32,7 @@ __pthread_once (pthread_once_t *once_control, void (*init_routine) (void)) if (once_control->__run == 0) { init_routine (); - __memory_barrier (); + atomic_full_barrier (); once_control->__run = 1; } diff --git a/sysdeps/i386/bits/memory.h b/sysdeps/i386/bits/memory.h deleted file mode 100644 index edbb468..0000000 --- a/sysdeps/i386/bits/memory.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Memory barrier operations. i386 version. - Copyright (C) 2002-2018 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If - not, see <http://www.gnu.org/licenses/>. */ - -#ifndef _BITS_MEMORY_H -#define _BITS_MEMORY_H 1 - -/* Prevent read and write reordering across this function. */ -static inline void -__memory_barrier (void) -{ - int i; - - /* Any lock'ed instruction will do. We just do a simple - increment. */ - __asm__ __volatile ("lock; incl %0" : "=m" (i) : "m" (i) : "memory"); -} - -/* Prevent read reordering across this function. */ -#define __memory_read_barrier __memory_barrier - -/* Prevent write reordering across this function. */ -#define __memory_write_barrier __memory_barrier - -#endif |