< prev index next >

src/hotspot/share/prims/jni.cpp

Print this page

        

*** 3777,3793 **** } void quicken_jni_functions() { // Replace Get<Primitive>Field with fast versions if (UseFastJNIAccessors && !JvmtiExport::can_post_field_access() ! && !VerifyJNIFields && !CountJNICalls && !CheckJNICalls ! #if defined(_WINDOWS) && defined(IA32) && defined(COMPILER2) ! // windows x86 currently needs SEH wrapper and the gain of the fast ! // versions currently isn't certain for server vm on uniprocessor. ! && os::is_MP() ! #endif ! ) { address func; func = JNI_FastGetField::generate_fast_get_boolean_field(); if (func != (address)-1) { jni_NativeInterface.GetBooleanField = (GetBooleanField_t)func; } --- 3777,3787 ---- } void quicken_jni_functions() { // Replace Get<Primitive>Field with fast versions if (UseFastJNIAccessors && !JvmtiExport::can_post_field_access() ! && !VerifyJNIFields && !CountJNICalls && !CheckJNICalls) { address func; func = JNI_FastGetField::generate_fast_get_boolean_field(); if (func != (address)-1) { jni_NativeInterface.GetBooleanField = (GetBooleanField_t)func; }
*** 3916,3928 **** // Threads. We do an atomic compare and exchange to ensure only // one thread can call this method at a time // We use Atomic::xchg rather than Atomic::add/dec since on some platforms // the add/dec implementations are dependent on whether we are running ! // on a multiprocessor, and at this stage of initialization the os::is_MP ! // function used to determine this will always return false. Atomic::xchg ! // does not have this problem. if (Atomic::xchg(1, &vm_created) == 1) { return JNI_EEXIST; // already created, or create attempt in progress } if (Atomic::xchg(0, &safe_to_recreate_vm) == 0) { return JNI_ERR; // someone tried and failed and retry not allowed. --- 3910,3920 ---- // Threads. We do an atomic compare and exchange to ensure only // one thread can call this method at a time // We use Atomic::xchg rather than Atomic::add/dec since on some platforms // the add/dec implementations are dependent on whether we are running ! // on a multiprocessor Atomic::xchg does not have this problem. if (Atomic::xchg(1, &vm_created) == 1) { return JNI_EEXIST; // already created, or create attempt in progress } if (Atomic::xchg(0, &safe_to_recreate_vm) == 0) { return JNI_ERR; // someone tried and failed and retry not allowed.
< prev index next >