summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-03-19 00:40:18 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-03-19 00:40:18 +0100
commit332c0bf4bca963ee6f104634349546864ecf62e5 (patch)
tree39be1f60467d76297ee86d4b03832c1581ca0efd
parentbdfd1c0880b74b0f02cbd5a16dd1b1316f33fd5c (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.c6
-rw-r--r--sysdeps/i386/bits/memory.h39
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