reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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;