summaryrefslogtreecommitdiff
path: root/pthread_once.c
diff options
context:
space:
mode:
Diffstat (limited to 'pthread_once.c')
-rw-r--r--pthread_once.c4
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;