comparison src/share/vm/runtime/thread.cpp @ 17706:0e6af9b390af

8028280: ParkEvent leak when running modified runThese which only loads classes Summary: Use spin lock to manage ParkEvent and PlatformEvent free lists. Reviewed-by: dholmes, fparain, dcubed, acorn
author dsimms
date Fri, 24 Jan 2014 09:28:47 +0100
parents 292050e5d5ea
children 606acabe7b5c
comparison
equal deleted inserted replaced
17705:ba2cf1fc862b 17706:0e6af9b390af
4444 for (;;) { 4444 for (;;) {
4445 while (*adr != 0) { 4445 while (*adr != 0) {
4446 ++ctr ; 4446 ++ctr ;
4447 if ((ctr & 0xFFF) == 0 || !os::is_MP()) { 4447 if ((ctr & 0xFFF) == 0 || !os::is_MP()) {
4448 if (Yields > 5) { 4448 if (Yields > 5) {
4449 // Consider using a simple NakedSleep() instead. 4449 os::naked_short_sleep(1);
4450 // Then SpinAcquire could be called by non-JVM threads
4451 Thread::current()->_ParkEvent->park(1) ;
4452 } else { 4450 } else {
4453 os::NakedYield() ; 4451 os::NakedYield() ;
4454 ++Yields ; 4452 ++Yields ;
4455 } 4453 }
4456 } else { 4454 } else {