--- a/src/hotspot/os/windows/os_windows.cpp Thu Mar 01 16:51:22 2018 -0500
+++ b/src/hotspot/os/windows/os_windows.cpp Thu Mar 01 16:35:36 2018 -0500
@@ -363,6 +363,25 @@
return sz;
}
+size_t os::committed_stack_size(address bottom, size_t size) {
+ MEMORY_BASIC_INFORMATION minfo;
+ address top = bottom + size;
+ size_t committed_size = 0;
+
+ while (committed_size < size) {
+ // top is exclusive
+ VirtualQuery(top - 1, &minfo, sizeof(minfo));
+ if ((minfo.State & MEM_COMMIT) != 0) {
+ committed_size += minfo.RegionSize;
+ top -= minfo.RegionSize;
+ } else {
+ break;
+ }
+ }
+
+ return MIN2(committed_size, size);
+}
+
struct tm* os::localtime_pd(const time_t* clock, struct tm* res) {
const struct tm* time_struct_ptr = localtime(clock);
if (time_struct_ptr != NULL) {