Lines Matching defs:ObjectWaiter

523     // TODO: eliminate ObjectWaiter and enqueue either Threads or Events.
526 ObjectWaiter node(Self) ;
528 node._prev = (ObjectWaiter *) 0xBAD ;
529 node.TState = ObjectWaiter::TS_CXQ ;
535 ObjectWaiter * nxt ;
731 void ATTR ObjectMonitor::ReenterI (Thread * Self, ObjectWaiter * SelfNode) {
742 ObjectWaiter::TStates v = SelfNode->TState ;
743 guarantee (v == ObjectWaiter::TS_ENTER || v == ObjectWaiter::TS_CXQ, "invariant") ;
815 SelfNode->TState = ObjectWaiter::TS_RUN ;
822 void ObjectMonitor::UnlinkAfterAcquire (Thread * Self, ObjectWaiter * SelfNode)
827 if (SelfNode->TState == ObjectWaiter::TS_ENTER) {
830 ObjectWaiter * nxt = SelfNode->_next ;
831 ObjectWaiter * prv = SelfNode->_prev ;
835 assert (nxt == NULL || nxt->TState == ObjectWaiter::TS_ENTER, "invariant") ;
836 assert (prv == NULL || prv->TState == ObjectWaiter::TS_ENTER, "invariant") ;
839 guarantee (SelfNode->TState == ObjectWaiter::TS_CXQ, "invariant") ;
853 ObjectWaiter * v = _cxq ;
863 ObjectWaiter * p ;
864 ObjectWaiter * q = NULL ;
867 assert (p->TState == ObjectWaiter::TS_CXQ, "invariant") ;
880 SelfNode->_prev = (ObjectWaiter *) 0xBAD ;
881 SelfNode->_next = (ObjectWaiter *) 0xBAD ;
882 SelfNode->TState = ObjectWaiter::TS_RUN ;
1080 ObjectWaiter * w = NULL ;
1089 assert (w->TState == ObjectWaiter::TS_CXQ, "Invariant") ;
1103 ObjectWaiter * u = (ObjectWaiter *) Atomic::cmpxchg_ptr (NULL, &_cxq, w) ;
1109 ObjectWaiter * q = NULL ;
1110 ObjectWaiter * p ;
1112 guarantee (p->TState == ObjectWaiter::TS_CXQ, "Invariant") ;
1113 p->TState = ObjectWaiter::TS_ENTER ;
1120 ObjectWaiter * Tail ;
1142 ObjectWaiter * u = (ObjectWaiter *) Atomic::cmpxchg_ptr (NULL, &_cxq, w) ;
1148 ObjectWaiter * q = NULL ;
1149 ObjectWaiter * p ;
1151 guarantee (p->TState == ObjectWaiter::TS_CXQ, "Invariant") ;
1152 p->TState = ObjectWaiter::TS_ENTER ;
1180 assert (w->TState == ObjectWaiter::TS_ENTER, "invariant") ;
1195 ObjectWaiter * u = (ObjectWaiter *) Atomic::cmpxchg_ptr (NULL, &_cxq, w) ;
1216 ObjectWaiter * s = NULL ;
1217 ObjectWaiter * t = w ;
1218 ObjectWaiter * u = NULL ;
1220 guarantee (t->TState == ObjectWaiter::TS_CXQ, "invariant") ;
1221 t->TState = ObjectWaiter::TS_ENTER ;
1233 ObjectWaiter * q = NULL ;
1234 ObjectWaiter * p ;
1236 guarantee (p->TState == ObjectWaiter::TS_CXQ, "Invariant") ;
1237 p->TState = ObjectWaiter::TS_ENTER ;
1253 guarantee (w->TState == ObjectWaiter::TS_ENTER, "invariant") ;
1307 void ObjectMonitor::ExitEpilog (Thread * Self, ObjectWaiter * Wakee) {
1480 ObjectWaiter node(Self);
1481 node.TState = ObjectWaiter::TS_WAIT ;
1572 if (node.TState == ObjectWaiter::TS_WAIT) {
1574 if (node.TState == ObjectWaiter::TS_WAIT) {
1577 node.TState = ObjectWaiter::TS_RUN ;
1586 guarantee (node.TState != ObjectWaiter::TS_WAIT, "invariant") ;
1613 ObjectWaiter::TStates v = node.TState ;
1614 if (v == ObjectWaiter::TS_RUN) {
1617 guarantee (v == ObjectWaiter::TS_ENTER || v == ObjectWaiter::TS_CXQ, "invariant") ;
1626 guarantee (node.TState == ObjectWaiter::TS_RUN, "invariant") ;
1677 ObjectWaiter * iterator = DequeueWaiter() ;
1680 guarantee (iterator->TState == ObjectWaiter::TS_WAIT, "invariant") ;
1683 iterator->TState = ObjectWaiter::TS_ENTER ;
1689 ObjectWaiter * List = _EntryList ;
1692 assert (List->TState == ObjectWaiter::TS_ENTER, "invariant") ;
1715 ObjectWaiter * Tail ;
1729 iterator->TState = ObjectWaiter::TS_CXQ ;
1731 ObjectWaiter * Front = _cxq ;
1740 iterator->TState = ObjectWaiter::TS_CXQ ;
1742 ObjectWaiter * Tail ;
1759 iterator->TState = ObjectWaiter::TS_RUN ;
1787 ObjectWaiter* iterator;
1809 guarantee (iterator->TState == ObjectWaiter::TS_WAIT, "invariant") ;
1815 iterator->TState = ObjectWaiter::TS_ENTER ;
1818 ObjectWaiter * List = _EntryList ;
1821 assert (List->TState == ObjectWaiter::TS_ENTER, "invariant") ;
1844 ObjectWaiter * Tail ;
1854 iterator->TState = ObjectWaiter::TS_CXQ ;
1856 ObjectWaiter * Front = _cxq ;
1864 iterator->TState = ObjectWaiter::TS_CXQ ;
1866 ObjectWaiter * Tail ;
1883 iterator->TState = ObjectWaiter::TS_RUN ;
2274 ObjectWaiter::ObjectWaiter(Thread* thread) {
2285 void ObjectWaiter::wait_reenter_begin(ObjectMonitor *mon) {
2290 void ObjectWaiter::wait_reenter_end(ObjectMonitor *mon) {
2295 inline void ObjectMonitor::AddWaiter(ObjectWaiter* node) {
2305 ObjectWaiter* head = _WaitSet ;
2306 ObjectWaiter* tail = head->_prev;
2315 inline ObjectWaiter* ObjectMonitor::DequeueWaiter() {
2317 ObjectWaiter* waiter = _WaitSet;
2324 inline void ObjectMonitor::DequeueSpecificWaiter(ObjectWaiter* node) {
2331 ObjectWaiter* next = node->_next;
2336 ObjectWaiter* prev = node->_prev;