From 0ef7b75c4ba91b6660f0d3d8b51d14d25e3d5bfb Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 23 Mar 2015 01:53:54 +0100 Subject: Fix safety of pthread_once * sysdeps/generic/pt-once.c (__pthread_once): Call __memory_barrier before testing the __run field. --- sysdeps/generic/pt-once.c | 1 + 1 file changed, 1 insertion(+) (limited to 'sysdeps/generic') 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); -- cgit v1.2.3