diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-03-23 01:53:54 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-03-23 01:53:54 +0100 |
commit | 0ef7b75c4ba91b6660f0d3d8b51d14d25e3d5bfb (patch) | |
tree | 1f8021dd18bf296cc3f688656234e28f62236bfb /sysdeps/generic | |
parent | 733616d782505a538bc2df900fe211a4e5a68b54 (diff) |
Fix safety of pthread_once
* sysdeps/generic/pt-once.c (__pthread_once): Call __memory_barrier before
testing the __run field.
Diffstat (limited to 'sysdeps/generic')
-rw-r--r-- | sysdeps/generic/pt-once.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sysdeps/generic/pt-once.c b/sysdeps/generic/pt-once.c index 21f097d..cfa45d5 100644 --- a/sysdeps/generic/pt-once.c +++ b/sysdeps/generic/pt-once.c @@ -25,6 +25,7 @@ int __pthread_once (pthread_once_t *once_control, void (*init_routine) (void)) { + __memory_barrier (); if (once_control->__run == 0) { __pthread_spin_lock (&once_control->__lock); |