Skip to content

Commit

Permalink
Fix static initializers for locks.
Browse files Browse the repository at this point in the history
Fix static initializers to use the proper unlocked value for the poll
field of the tas and futex locks.

Patch by Terry Wilmarth

Differential Revision: https://reviews.llvm.org/D33794

llvm-svn: 304828
  • Loading branch information
jpeyton52 committed Jun 6, 2017
1 parent 658a0c7 commit ccfed2e
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions openmp/runtime/src/kmp_lock.h
Expand Up @@ -122,7 +122,8 @@ extern void __kmp_validate_locks(void);
// ----------------------------------------------------------------------------

struct kmp_base_tas_lock {
volatile kmp_int32 poll; // 0 => unlocked; locked: (gtid+1) of owning thread
// KMP_LOCK_FREE(tas) => unlocked; locked: (gtid+1) of owning thread
volatile kmp_int32 poll;
kmp_int32 depth_locked; // depth locked, for nested locks only
};

Expand All @@ -140,7 +141,7 @@ typedef union kmp_tas_lock kmp_tas_lock_t;
// kmp_tas_lock_t xlock = KMP_TAS_LOCK_INITIALIZER( xlock );
#define KMP_TAS_LOCK_INITIALIZER(lock) \
{ \
{ 0, 0 } \
{ KMP_LOCK_FREE(tas), 0 } \
}

extern int __kmp_acquire_tas_lock(kmp_tas_lock_t *lck, kmp_int32 gtid);
Expand Down Expand Up @@ -178,7 +179,7 @@ extern void __kmp_destroy_nested_tas_lock(kmp_tas_lock_t *lck);
// ----------------------------------------------------------------------------

struct kmp_base_futex_lock {
volatile kmp_int32 poll; // 0 => unlocked
volatile kmp_int32 poll; // KMP_LOCK_FREE(futex) => unlocked
// 2*(gtid+1) of owning thread, 0 if unlocked
// locked: (gtid+1) of owning thread
kmp_int32 depth_locked; // depth locked, for nested locks only
Expand All @@ -199,7 +200,7 @@ typedef union kmp_futex_lock kmp_futex_lock_t;
// kmp_futex_lock_t xlock = KMP_FUTEX_LOCK_INITIALIZER( xlock );
#define KMP_FUTEX_LOCK_INITIALIZER(lock) \
{ \
{ 0, 0 } \
{ KMP_LOCK_FREE(futex), 0 } \
}

extern int __kmp_acquire_futex_lock(kmp_futex_lock_t *lck, kmp_int32 gtid);
Expand Down

0 comments on commit ccfed2e

Please sign in to comment.