Lines Matching refs:ParkEvent
47 // Note that we could defer associating a ParkEvent with a thread
50 // for a thread would allocate and associate a ParkEvent and return
53 volatile int ParkEvent::ListLock = 0 ;
54 ParkEvent * volatile ParkEvent::FreeList = NULL ;
56 ParkEvent * ParkEvent::Allocate (Thread * t) {
58 ParkEvent * ev ;
61 // ParkEvent from the global free list.
75 ParkEvent * List = ev->FreeNext ;
80 ParkEvent * Arv = (ParkEvent *) Atomic::cmpxchg_ptr (List, &FreeList, NULL) ;
89 ParkEvent * Tail = List ;
99 // Do this the hard way -- materialize a new ParkEvent.
104 // In that case the 2nd thread would have to materialize a new ParkEvent,
114 ev = new ParkEvent () ;
123 void ParkEvent::Release (ParkEvent * ev) {
130 ParkEvent * List = FreeList ;
137 // least significant byte of ParkEvent addresses is 0.
143 void * ParkEvent::operator new (size_t sz) {
147 void ParkEvent::operator delete (void * a) {
153 // 6399321 As a temporary measure we copied & modified the ParkEvent::