reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

projects/openmp/runtime/src/kmp_lock.cpp
 2234   kmp_uint64 ticket = KMP_ATOMIC_INC(&lck->lk.next_ticket);
 2235   kmp_uint64 mask = lck->lk.mask; // atomic load
 2236   std::atomic<kmp_uint64> *polls = lck->lk.polls;
 2252   KMP_FSYNC_PREPARE(lck);
 2263     mask = lck->lk.mask; // atomic load
 2264     polls = lck->lk.polls; // atomic load
 2268   KMP_FSYNC_ACQUIRED(lck);
 2271   lck->lk.now_serving = ticket; // non-volatile store
 2278   if ((lck->lk.old_polls != NULL) && (ticket >= lck->lk.cleanup_ticket)) {
 2278   if ((lck->lk.old_polls != NULL) && (ticket >= lck->lk.cleanup_ticket)) {
 2279     __kmp_free(lck->lk.old_polls);
 2280     lck->lk.old_polls = NULL;
 2281     lck->lk.cleanup_ticket = 0;
 2287   if (lck->lk.old_polls == NULL) {
 2290     kmp_uint32 num_polls = TCR_4(lck->lk.num_polls);
 2298         num_polls = TCR_4(lck->lk.num_polls);
 2309       kmp_uint64 num_waiting = TCR_8(lck->lk.next_ticket) - ticket - 1;
 2345       lck->lk.old_polls = old_polls;
 2346       lck->lk.polls = polls; // atomic store
 2350       lck->lk.num_polls = num_polls;
 2351       lck->lk.mask = mask; // atomic store
 2359       lck->lk.cleanup_ticket = lck->lk.next_ticket;
 2359       lck->lk.cleanup_ticket = lck->lk.next_ticket;