equal
deleted
inserted
replaced
292 // we might instead use a stack of ParkEvents that we could provision on-demand. |
292 // we might instead use a stack of ParkEvents that we could provision on-demand. |
293 // The stack would act as a cache to avoid calls to ParkEvent::Allocate() |
293 // The stack would act as a cache to avoid calls to ParkEvent::Allocate() |
294 // and ::Release() |
294 // and ::Release() |
295 _ParkEvent = ParkEvent::Allocate(this); |
295 _ParkEvent = ParkEvent::Allocate(this); |
296 _SleepEvent = ParkEvent::Allocate(this); |
296 _SleepEvent = ParkEvent::Allocate(this); |
297 _MutexEvent = ParkEvent::Allocate(this); |
|
298 _MuxEvent = ParkEvent::Allocate(this); |
297 _MuxEvent = ParkEvent::Allocate(this); |
299 |
298 |
300 #ifdef CHECK_UNHANDLED_OOPS |
299 #ifdef CHECK_UNHANDLED_OOPS |
301 if (CheckUnhandledOops) { |
300 if (CheckUnhandledOops) { |
302 _unhandled_oops = new UnhandledOops(this); |
301 _unhandled_oops = new UnhandledOops(this); |
458 |
457 |
459 // It's possible we can encounter a null _ParkEvent, etc., in stillborn threads. |
458 // It's possible we can encounter a null _ParkEvent, etc., in stillborn threads. |
460 // We NULL out the fields for good hygiene. |
459 // We NULL out the fields for good hygiene. |
461 ParkEvent::Release(_ParkEvent); _ParkEvent = NULL; |
460 ParkEvent::Release(_ParkEvent); _ParkEvent = NULL; |
462 ParkEvent::Release(_SleepEvent); _SleepEvent = NULL; |
461 ParkEvent::Release(_SleepEvent); _SleepEvent = NULL; |
463 ParkEvent::Release(_MutexEvent); _MutexEvent = NULL; |
|
464 ParkEvent::Release(_MuxEvent); _MuxEvent = NULL; |
462 ParkEvent::Release(_MuxEvent); _MuxEvent = NULL; |
465 |
463 |
466 delete handle_area(); |
464 delete handle_area(); |
467 delete metadata_handles(); |
465 delete metadata_handles(); |
468 |
466 |