Pedentic changes in atomic.h :)
Correct the ompi_object_update function to work correctly with the supplied increment. This commit was SVN r3418.
Этот коммит содержится в:
родитель
e817bbcff6
Коммит
9972663a12
@ -405,23 +405,7 @@ static inline ompi_object_t *ompi_obj_new(size_t size, ompi_class_t * cls)
|
||||
*/
|
||||
static inline int ompi_obj_update(ompi_object_t *object, int inc)
|
||||
{
|
||||
#ifdef WIN32
|
||||
|
||||
LONG volatile *addr;
|
||||
|
||||
addr = (LONG volatile *) &(object->obj_reference_count);
|
||||
InterlockedExchangeAdd(addr, (LONG) inc);
|
||||
|
||||
#elif OMPI_HAVE_ATOMIC
|
||||
|
||||
ompi_atomic_add(&(object->obj_reference_count), 1 );
|
||||
|
||||
#else
|
||||
|
||||
object->obj_reference_count += inc;
|
||||
|
||||
#endif
|
||||
|
||||
ompi_atomic_add(&(object->obj_reference_count), inc );
|
||||
return object->obj_reference_count;
|
||||
}
|
||||
|
||||
|
@ -403,16 +403,14 @@ enum {
|
||||
|
||||
static inline int ompi_atomic_trylock(ompi_lock_t *lock)
|
||||
{
|
||||
return ompi_atomic_cmpset_acq(&lock->u.lock,
|
||||
OMPI_ATOMIC_UNLOCKED,
|
||||
OMPI_ATOMIC_LOCKED);
|
||||
return ompi_atomic_cmpset_acq( &(lock->u.lock),
|
||||
OMPI_ATOMIC_UNLOCKED, OMPI_ATOMIC_LOCKED);
|
||||
}
|
||||
|
||||
static inline void ompi_atomic_lock(ompi_lock_t *lock)
|
||||
{
|
||||
while( !ompi_atomic_cmpset_acq(&lock->u.lock,
|
||||
OMPI_ATOMIC_UNLOCKED,
|
||||
OMPI_ATOMIC_LOCKED) ) {
|
||||
while( !ompi_atomic_cmpset_acq( &(lock->u.lock),
|
||||
OMPI_ATOMIC_UNLOCKED, OMPI_ATOMIC_LOCKED) ) {
|
||||
while (lock->u.lock == OMPI_ATOMIC_LOCKED) {
|
||||
/* spin */ ;
|
||||
}
|
||||
@ -421,9 +419,8 @@ static inline void ompi_atomic_lock(ompi_lock_t *lock)
|
||||
|
||||
static inline void ompi_atomic_unlock(ompi_lock_t *lock)
|
||||
{
|
||||
ompi_atomic_cmpset_rel(&lock->u.lock,
|
||||
OMPI_ATOMIC_LOCKED,
|
||||
OMPI_ATOMIC_UNLOCKED);
|
||||
ompi_atomic_cmpset_rel( &(lock->u.lock),
|
||||
OMPI_ATOMIC_LOCKED, OMPI_ATOMIC_UNLOCKED);
|
||||
}
|
||||
#endif /* OMPI_HAVE_ATOMIC || OMPI_HAVE_ATOMIC_WIN32 */
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user