Mercurial > hg > truffle
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 { |