cmThread.c: Changed OSAtomicCompareAndSwap32Barrier() to OSAtomicCompareAndSwap64Barrier()
as part of port to spat-lab Mac.
This commit is contained in:
parent
73b2d853c8
commit
caa4b558aa
10
cmThread.c
10
cmThread.c
@ -1293,14 +1293,16 @@ bool cmThFloatCAS( float* addr, float old, float new )
|
|||||||
bool cmThPtrCAS( void* addr, void* old, void* neww )
|
bool cmThPtrCAS( void* addr, void* old, void* neww )
|
||||||
{
|
{
|
||||||
#ifdef OS_OSX
|
#ifdef OS_OSX
|
||||||
|
|
||||||
// REMOVE THIS HACK AND USE OSAtomicCompareAndSwapPtrBarrier() WHEN
|
// REMOVE THIS HACK AND USE OSAtomicCompareAndSwapPtrBarrier() WHEN
|
||||||
// A 64 BIT BUILD IS POSSIBLE ON OS-X.
|
// A 64 BIT BUILD IS POSSIBLE ON OS-X.
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
void* addr;
|
void* addr;
|
||||||
int val;
|
int64_t val;
|
||||||
} u;
|
} u;
|
||||||
} s_t;
|
} s_t;
|
||||||
|
|
||||||
@ -1309,7 +1311,8 @@ bool cmThPtrCAS( void* addr, void* old, void* neww )
|
|||||||
ov.u.addr = old;
|
ov.u.addr = old;
|
||||||
nv.u.addr = neww;
|
nv.u.addr = neww;
|
||||||
|
|
||||||
int rv = OSAtomicCompareAndSwap32Barrier(ov.u.val,nv.u.val,(int*)addr);
|
int rv = OSAtomicCompareAndSwap64Barrier(ov.u.val,nv.u.val,(int64_t*)addr);
|
||||||
|
|
||||||
//int rv = OSAtomicCompareAndSwapPtrBarrier(old,neww,&addr);
|
//int rv = OSAtomicCompareAndSwapPtrBarrier(old,neww,&addr);
|
||||||
return rv;
|
return rv;
|
||||||
#endif
|
#endif
|
||||||
@ -1616,6 +1619,8 @@ cmThRC_t cmTsMp1cEnqueueSegMsg( cmTsMp1cH_t h, const void* msgPtrArray[], unsi
|
|||||||
|
|
||||||
}while(!cmThPtrCAS(&p->olp,old_hp,new_hp));
|
}while(!cmThPtrCAS(&p->olp,old_hp,new_hp));
|
||||||
|
|
||||||
|
//printf("%p %p %i\n",p->ilp,p->olp,p->olp->mn);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1662,7 +1667,6 @@ unsigned _cmTsMp1cNextMsgByteCnt( cmTsMp1c_t* p )
|
|||||||
// return the size of the new msg
|
// return the size of the new msg
|
||||||
return p->olp->mn;
|
return p->olp->mn;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user