private static void InitializeConfig() { if (IsInitialized) // IsInitialized is volatile, lock-free read is safe { return; } lock (InitializationSyncLock) { if (IsInitialized) { return; } Monitor = new ChangeMonitor(); Monitor.ChangeDetected += ChangeDetectedHandler; ReloadSettings(); IsInitialized = true; } }
private static void InitializeConfig() { if (IsInitialized) // IsInitialized is volatile, lock-free read is safe return; lock (InitializationSyncLock) { if (IsInitialized) return; Monitor = new ChangeMonitor(); Monitor.ChangeDetected += ChangeDetectedHandler; ReloadSettings(); IsInitialized = true; } }