__wake(control, -1, 1);
}
-int __pthread_once_full(pthread_once_t *control, void (*init)(void))
+hidden int __pthread_once_full(pthread_once_t *control, void (*init)(void))
{
/* Try to enter initializing state. Four possibilities:
* 0 - we're the first or the other cancelled; run init
{
/* Return immediately if init finished before, but ensure that
* effects of the init routine are visible to the caller. */
- if (*control == 2) {
+ if (*(volatile int *)control == 2) {
a_barrier();
return 0;
}