diff --git a/circuit.go b/circuit.go index 245f61f..06f9e2b 100644 --- a/circuit.go +++ b/circuit.go @@ -71,9 +71,8 @@ func (c *Circuit) ConcurrentFallbacks() int64 { func (c *Circuit) SetConfigThreadSafe(config Config) { c.notThreadSafeConfigMu.Lock() defer c.notThreadSafeConfigMu.Unlock() - //c.circuitStats.SetConfigThreadSafe(config) - c.threadSafeConfig.reset(c.notThreadSafeConfig) c.notThreadSafeConfig = config + c.threadSafeConfig.reset(c.notThreadSafeConfig) if cfg, ok := c.OpenToClose.(Configurable); ok { cfg.SetConfigThreadSafe(config) } diff --git a/circuit_test.go b/circuit_test.go index 50ecb53..c85335b 100644 --- a/circuit_test.go +++ b/circuit_test.go @@ -345,6 +345,22 @@ func TestFailingFallbackCircuit(t *testing.T) { } } +func TestSetConfigThreadSafe(t *testing.T) { + var breaker Circuit + + if breaker.threadSafeConfig.CircuitBreaker.Disabled.Get() { + t.Error("Circuit should start off not disabled") + } + breaker.SetConfigThreadSafe(Config{ + General: GeneralConfig{ + Disabled: true, + }, + }) + if !breaker.threadSafeConfig.CircuitBreaker.Disabled.Get() { + t.Error("Circuit should be disabled after setting config to disabled") + } +} + //func TestSLO(t *testing.T) { // c := NewCircuitFromConfig("TestFailingCircuit", Config{ // GoSpecific: GoSpecificConfig{