< prev index next >
src/os/solaris/vm/os_solaris.cpp
Print this page
rev 13069 : imported patch ClearFPUAtPark
*** 5101,5115 ****
}
guarantee(v >= 0, "invariant");
if (v == 0) {
// Do this the hard way by blocking ...
// See http://monaco.sfbay/detail.jsf?cr=5094058.
- // TODO-FIXME: for Solaris SPARC set fprs.FEF=0 prior to parking.
- // Only for SPARC >= V8PlusA
- #if defined(__sparc) && defined(COMPILER2)
- if (ClearFPUAtPark) { _mark_fpu_nosave(); }
- #endif
int status = os::Solaris::mutex_lock(_mutex);
assert_status(status == 0, status, "mutex_lock");
guarantee(_nParked == 0, "invariant");
++_nParked;
while (_Event < 0) {
--- 5101,5110 ----
*** 5148,5162 ****
int ret = OS_TIMEOUT;
timestruc_t abst;
compute_abstime(&abst, millis);
// See http://monaco.sfbay/detail.jsf?cr=5094058.
- // For Solaris SPARC set fprs.FEF=0 prior to parking.
- // Only for SPARC >= V8PlusA
- #if defined(__sparc) && defined(COMPILER2)
- if (ClearFPUAtPark) { _mark_fpu_nosave(); }
- #endif
int status = os::Solaris::mutex_lock(_mutex);
assert_status(status == 0, status, "mutex_lock");
guarantee(_nParked == 0, "invariant");
++_nParked;
while (_Event < 0) {
--- 5143,5152 ----
*** 5345,5360 ****
jt->set_suspend_equivalent();
// cleared by handle_special_suspend_equivalent_condition() or java_suspend_self()
// Do this the hard way by blocking ...
// See http://monaco.sfbay/detail.jsf?cr=5094058.
- // TODO-FIXME: for Solaris SPARC set fprs.FEF=0 prior to parking.
- // Only for SPARC >= V8PlusA
- #if defined(__sparc) && defined(COMPILER2)
- if (ClearFPUAtPark) { _mark_fpu_nosave(); }
- #endif
-
if (time == 0) {
status = os::Solaris::cond_wait(_cond, _mutex);
} else {
status = os::Solaris::cond_timedwait (_cond, _mutex, &absTime);
}
--- 5335,5344 ----
< prev index next >