summaryrefslogtreecommitdiff
path: root/pthread_once.c
diff options
context:
space:
mode:
authorrpj <rpj>2011-06-30 02:07:14 +0000
committerrpj <rpj>2011-06-30 02:07:14 +0000
commit6e72bdd7414dff1db49dd943f440b201038a4576 (patch)
tree26cdde3533ef9b6114d099cc4da2af212b285c5c /pthread_once.c
parent5fdebbca2831af55fcd17d1819ec68dc17e2ec58 (diff)
Fixes for x64
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;