Lines Matching refs:_cxq

250 //   Because we push threads onto _cxq with CAS, the RATs must take the form of
251 // a singly-linked LIFO. We drain _cxq into EntryList at unlock-time when
252 // the unlocking thread notices that EntryList is null but _cxq is != null.
516 // Enqueue "Self" on ObjectMonitor's _cxq.
531 // Push "Self" onto the front of the _cxq.
537 node._next = nxt = _cxq ;
538 if (Atomic::cmpxchg_ptr (&node, &_cxq, nxt) == nxt) break ;
540 // Interference - the CAS failed because _cxq changed. Just retry.
580 // itself onto _cxq. To close the race and avoid "stranding" and
853 ObjectWaiter * v = _cxq ;
855 if (v != SelfNode || Atomic::cmpxchg_ptr (SelfNode->_next, &_cxq, v) != v) {
860 assert (_cxq != v, "invariant") ;
861 v = _cxq ; // CAS above failed - start scan at head of list
871 assert (p != _cxq, "invariant") ;
1000 if ((intptr_t(_EntryList)|intptr_t(_cxq)) == 0 || _succ != NULL) {
1039 // drain _cxq, so we need to reacquire the lock. If we fail
1048 if ((intptr_t(_EntryList)|intptr_t(_cxq)) == 0 || _succ != NULL) {
1052 if (_cxq == NULL || _succ != NULL) {
1083 if (QMode == 2 && _cxq != NULL) {
1087 w = _cxq ;
1094 if (QMode == 3 && _cxq != NULL) {
1097 // Drain _cxq into EntryList - bulk transfer.
1098 // First, detach _cxq.
1100 w = _cxq ;
1103 ObjectWaiter * u = (ObjectWaiter *) Atomic::cmpxchg_ptr (NULL, &_cxq, w) ;
1132 if (QMode == 4 && _cxq != NULL) {
1136 // Drain _cxq into EntryList - bulk transfer.
1137 // First, detach _cxq.
1139 w = _cxq ;
1142 ObjectWaiter * u = (ObjectWaiter *) Atomic::cmpxchg_ptr (NULL, &_cxq, w) ;
1185 // If we find that both _cxq and EntryList are null then just
1187 w = _cxq ;
1190 // Drain _cxq into EntryList - bulk transfer.
1191 // First, detach _cxq.
1195 ObjectWaiter * u = (ObjectWaiter *) Atomic::cmpxchg_ptr (NULL, &_cxq, w) ;
1204 // Convert the LIFO SLL anchored by _cxq into a DLL.
1731 ObjectWaiter * Front = _cxq ;
1733 if (Atomic::cmpxchg_ptr (iterator, &_cxq, Front) == Front) {
1743 Tail = _cxq ;
1746 if (Atomic::cmpxchg_ptr (iterator, &_cxq, NULL) == NULL) {
1806 // b. push it onto the front of the _cxq.
1856 ObjectWaiter * Front = _cxq ;
1858 if (Atomic::cmpxchg_ptr (iterator, &_cxq, Front) == Front) {
1867 Tail = _cxq ;
1870 if (Atomic::cmpxchg_ptr (iterator, &_cxq, NULL) == NULL) {