8030808: dtrace/hotspot/Monitors/Monitors001 fails in product builds on solaris-sparc
Reviewed-by: sspitsyn, dcubed, kamg, dholmes
--- a/hotspot/src/share/vm/runtime/synchronizer.cpp Wed Feb 05 21:24:29 2014 -0800
+++ b/hotspot/src/share/vm/runtime/synchronizer.cpp Thu Feb 06 17:59:35 2014 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -373,23 +373,24 @@
// -----------------------------------------------------------------------------
// Wait/Notify/NotifyAll
// NOTE: must use heavy weight monitor to handle wait()
-void ObjectSynchronizer::wait(Handle obj, jlong millis, TRAPS) {
+int ObjectSynchronizer::wait(Handle obj, jlong millis, TRAPS) {
if (UseBiasedLocking) {
BiasedLocking::revoke_and_rebias(obj, false, THREAD);
assert(!obj->mark()->has_bias_pattern(), "biases should be revoked by now");
}
if (millis < 0) {
TEVENT (wait - throw IAX) ;
- THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "timeout value is negative");
+ THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(), "timeout value is negative");
}
ObjectMonitor* monitor = ObjectSynchronizer::inflate(THREAD, obj());
DTRACE_MONITOR_WAIT_PROBE(monitor, obj(), THREAD, millis);
monitor->wait(millis, true, THREAD);
- /* This dummy call is in place to get around dtrace bug 6254741. Once
- that's fixed we can uncomment the following line and remove the call */
+ // This dummy call is in place to get around dtrace bug 6254741. Once
+ // that's fixed we can uncomment the following line, remove the call
+ // and change this function back into a "void" func.
// DTRACE_MONITOR_PROBE(waited, monitor, obj(), THREAD);
- dtrace_waited_probe(monitor, obj, THREAD);
+ return dtrace_waited_probe(monitor, obj, THREAD);
}
void ObjectSynchronizer::waitUninterruptibly (Handle obj, jlong millis, TRAPS) {
--- a/hotspot/src/share/vm/runtime/synchronizer.hpp Wed Feb 05 21:24:29 2014 -0800
+++ b/hotspot/src/share/vm/runtime/synchronizer.hpp Thu Feb 06 17:59:35 2014 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -68,7 +68,7 @@
static void jni_exit (oop obj, Thread* THREAD);
// Handle all interpreter, compiler and jni cases
- static void wait (Handle obj, jlong millis, TRAPS);
+ static int wait (Handle obj, jlong millis, TRAPS);
static void notify (Handle obj, TRAPS);
static void notifyall (Handle obj, TRAPS);