< prev index next >

src/hotspot/os/windows/os_windows.cpp

Print this page
rev 59057 : imported patch fix


4079     // note: perfMemory_exit_helper atexit function may be removed in
4080     // the future if the appropriate cleanup code can be added to the
4081     // VM_Exit VMOperation's doit method.
4082     if (atexit(perfMemory_exit_helper) != 0) {
4083       warning("os::init_2 atexit(perfMemory_exit_helper) failed");
4084     }
4085   }
4086 
4087 #ifndef _WIN64
4088   // Print something if NX is enabled (win32 on AMD64)
4089   NOT_PRODUCT(if (PrintMiscellaneous && Verbose) nx_check_protection());
4090 #endif
4091 
4092   // initialize thread priority policy
4093   prio_init();
4094 
4095   if (UseNUMA && !ForceNUMA) {
4096     UseNUMA = false; // We don't fully support this yet
4097   }
4098 
4099   if (UseNUMAInterleaving) {
4100     // first check whether this Windows OS supports VirtualAllocExNuma, if not ignore this flag
4101     bool success = numa_interleaving_init();
4102     if (!success) UseNUMAInterleaving = false;







4103   }
4104 
4105   if (initSock() != JNI_OK) {
4106     return JNI_ERR;
4107   }
4108 
4109   SymbolEngine::recalc_search_path();
4110 
4111   // Initialize data for jdk.internal.misc.Signal
4112   if (!ReduceSignalUsage) {
4113     jdk_misc_signal_init();
4114   }
4115 
4116   return JNI_OK;
4117 }
4118 
4119 // combine the high and low DWORD into a ULONGLONG
4120 static ULONGLONG make_double_word(DWORD high_word, DWORD low_word) {
4121   ULONGLONG value = high_word;
4122   value <<= sizeof(high_word) * 8;




4079     // note: perfMemory_exit_helper atexit function may be removed in
4080     // the future if the appropriate cleanup code can be added to the
4081     // VM_Exit VMOperation's doit method.
4082     if (atexit(perfMemory_exit_helper) != 0) {
4083       warning("os::init_2 atexit(perfMemory_exit_helper) failed");
4084     }
4085   }
4086 
4087 #ifndef _WIN64
4088   // Print something if NX is enabled (win32 on AMD64)
4089   NOT_PRODUCT(if (PrintMiscellaneous && Verbose) nx_check_protection());
4090 #endif
4091 
4092   // initialize thread priority policy
4093   prio_init();
4094 
4095   if (UseNUMA && !ForceNUMA) {
4096     UseNUMA = false; // We don't fully support this yet
4097   }
4098 
4099   // If UseNUMA then UseNUMAInterleaving is later (Arguments) defaulted to
4100   // true, but that's too late to call numa_interleaving_init.
4101   if (UseNUMAInterleaving || (UseNUMA && FLAG_IS_DEFAULT(UseNUMAInterleaving))) {
4102     // Check whether this Windows OS provides the needed support.
4103     if (!numa_interleaving_init()) {
4104       // Not supported, so disable flag and prevent later defaulted change.
4105       FLAG_SET_ERGO(UseNUMAInterleaving, false);
4106     } else if (!UseNUMAInterleaving) {
4107       // Supported, so change flag now, rather than waiting for Arguments.
4108       FLAG_SET_ERGO(UseNUMAInterleaving, true);
4109     }
4110   }
4111 
4112   if (initSock() != JNI_OK) {
4113     return JNI_ERR;
4114   }
4115 
4116   SymbolEngine::recalc_search_path();
4117 
4118   // Initialize data for jdk.internal.misc.Signal
4119   if (!ReduceSignalUsage) {
4120     jdk_misc_signal_init();
4121   }
4122 
4123   return JNI_OK;
4124 }
4125 
4126 // combine the high and low DWORD into a ULONGLONG
4127 static ULONGLONG make_double_word(DWORD high_word, DWORD low_word) {
4128   ULONGLONG value = high_word;
4129   value <<= sizeof(high_word) * 8;


< prev index next >