--- a/hotspot/src/share/vm/prims/jni.cpp Sun Jun 22 21:23:32 2014 -0400
+++ b/hotspot/src/share/vm/prims/jni.cpp Mon Jun 23 06:58:26 2014 -0700
@@ -3336,13 +3336,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();
}
}