diff options
Diffstat (limited to 'pthread_once.c')
-rw-r--r-- | pthread_once.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/pthread_once.c b/pthread_once.c index ca66dce..e18726c 100644 --- a/pthread_once.c +++ b/pthread_once.c @@ -54,7 +54,9 @@ pthread_once (pthread_once_t * once_control, void (*init_routine) (void)) return EINVAL; } - if (!PTW32_INTERLOCKED_EXCHANGE_ADD((LPLONG)&once_control->done, (size_t)0)) /* MBR fence */ + if ((PTW32_INTERLOCKED_VALUE)0 == + (PTW32_INTERLOCKED_VALUE)PTW32_INTERLOCKED_EXCHANGE_ADD((PTW32_INTERLOCKED_PTR)&once_control->done, + (PTW32_INTERLOCKED_VALUE)0)) /* MBR fence */ { ptw32_mcs_local_node_t node; |