summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/shared.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/shared.cc')
-rw-r--r--winsup/cygwin/shared.cc30
1 files changed, 14 insertions, 16 deletions
diff --git a/winsup/cygwin/shared.cc b/winsup/cygwin/shared.cc
index 86c66a44a..b276f92f9 100644
--- a/winsup/cygwin/shared.cc
+++ b/winsup/cygwin/shared.cc
@@ -250,22 +250,20 @@ shared_info::heap_chunk_size ()
{
if (!heap_chunk)
{
- /* Fetch misc. registry entries. */
-
- reg_key reg (KEY_READ, NULL);
-
- /* Note that reserving a huge amount of heap space does not result in
- the use of swap since we are not committing it. */
- /* FIXME: We should not be restricted to a fixed size heap no matter
- what the fixed size is. */
-
- heap_chunk = reg.get_int ("heap_chunk_in_mb", 0);
- if (!heap_chunk) {
- reg_key r1 (HKEY_LOCAL_MACHINE, KEY_READ, "SOFTWARE",
- CYGWIN_INFO_CYGNUS_REGISTRY_NAME,
- CYGWIN_INFO_CYGWIN_REGISTRY_NAME, NULL);
- heap_chunk = r1.get_int ("heap_chunk_in_mb", 384);
- }
+ /* Fetch from registry, first user then local machine. */
+ for (int i = 0; i < 2; i++)
+ {
+ reg_key reg (i, KEY_READ, NULL);
+
+ /* Note that reserving a huge amount of heap space does not result in
+ the use of swap since we are not committing it. */
+ /* FIXME: We should not be restricted to a fixed size heap no matter
+ what the fixed size is. */
+
+ if ((heap_chunk = reg.get_int ("heap_chunk_in_mb", 0)))
+ break;
+ heap_chunk = 384; /* Default */
+ }
if (heap_chunk < 4)
heap_chunk = 4 * 1024 * 1024;