Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/coreclr/gc/gc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45356,7 +45356,8 @@ HRESULT GCHeap::Initialize()
}
gc_heap::regions_range = align_on_page(gc_heap::regions_range);
}
// TODO: Set config after config API is merged.

GCConfig::SetGCRegionRange(gc_heap::regions_range);
#endif //USE_REGIONS

#endif //HOST_64BIT
Expand Down
17 changes: 12 additions & 5 deletions src/coreclr/gc/gcconfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,13 @@

#define INT_CONFIG(name, unused_private_key, unused_public_key, default, unused_doc) \
int64_t GCConfig::Get##name() { return s_##name; } \
int64_t GCConfig::Get##name(int64_t defaultValue) \
{ \
return s_##name##Provided ? s_##name : defaultValue; \
} \
void GCConfig::Set##name(int64_t value) { s_Updated##name = value; } \
int64_t GCConfig::s_##name = default; \
bool GCConfig::s_##name##Provided = false; \
int64_t GCConfig::s_Updated##name = default;

// String configs are not cached because 1) they are rare and
Expand Down Expand Up @@ -64,11 +69,13 @@ GC_CONFIGURATION_KEYS

void GCConfig::Initialize()
{
#define BOOL_CONFIG(name, private_key, public_key, unused_default, unused_doc) \
s_##name##Provided = GCToEEInterface::GetBooleanConfigValue(private_key, public_key, &s_##name);

#define INT_CONFIG(name, private_key, public_key, unused_default, unused_doc) \
GCToEEInterface::GetIntConfigValue(private_key, public_key, &s_##name);
#define BOOL_CONFIG(name, private_key, public_key, unused_default, unused_doc) \
s_##name##Provided = GCToEEInterface::GetBooleanConfigValue(private_key, public_key, &s_##name); \
s_Updated##name = s_##name;

#define INT_CONFIG(name, private_key, public_key, unused_default, unused_doc) \
s_##name##Provided = GCToEEInterface::GetIntConfigValue(private_key, public_key, &s_##name); \
s_Updated##name = s_##name; \

#define STRING_CONFIG(unused_name, unused_private_key, unused_public_key, unused_doc)

Expand Down
4 changes: 3 additions & 1 deletion src/coreclr/gc/gcconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,11 @@ class GCConfig

#define INT_CONFIG(name, unused_private_key, unused_public_key, unused_default, unused_doc) \
public: static int64_t Get##name(); \
public: static int64_t Get##name(int64_t defaultValue); \
public: static void Set##name(int64_t value); \
private: static int64_t s_##name; \
private: static int64_t s_Updated##name;
private: static bool s_##name##Provided; \
private: static int64_t s_Updated##name; \

#define STRING_CONFIG(name, unused_private_key, unused_public_key, unused_doc) \
public: static GCConfigStringHolder Get##name();
Expand Down