src/hotspot/os/windows/os_windows.cpp
changeset 49193 c3ec048aad63
parent 49177 eebf559c9e0d
child 49317 d17b6a80ae08
--- 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) {