--- a/hotspot/src/share/vm/prims/jni.cpp Mon Jun 23 14:20:20 2014 -0700
+++ b/hotspot/src/share/vm/prims/jni.cpp Wed Jun 25 20:41:16 2014 -0700
@@ -3337,13 +3337,7 @@
directBufferSupportInitializeEnded = 1;
} else {
while (!directBufferSupportInitializeEnded && !directBufferSupportInitializeFailed) {
- // Set state as yield_all can call os:sleep. On Solaris, yield_all calls
- // os::sleep which requires the VM state transition. On other platforms, it
- // is not necessary. The following call to change the VM state is purposely
- // put inside the loop to avoid potential deadlock when multiple threads
- // try to call this method. See 6791815 for more details.
- ThreadInVMfromNative tivn(thread);
- os::yield_all();
+ os::yield();
}
}