Skip to content

Commit bdbd5cf

Browse files
committed
use switch
1 parent 1376f85 commit bdbd5cf

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

hitless/circuit_breaker.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,17 +101,18 @@ func (cb *CircuitBreaker) Execute(fn func() error) error {
101101
if cb.state.CompareAndSwap(int32(CircuitBreakerOpen), int32(CircuitBreakerHalfOpen)) {
102102
cb.requests.Store(0)
103103
cb.successes.Store(0)
104-
state = CircuitBreakerHalfOpen // Update local state
105104
if cb.config != nil && cb.config.LogLevel.InfoOrAbove() {
106105
internal.Logger.Printf(context.Background(),
107106
"hitless: circuit breaker for %s transitioning to half-open", cb.endpoint)
108107
}
108+
// Fall through to half-open logic
109109
} else {
110110
return ErrCircuitBreakerOpen
111111
}
112112
} else {
113113
return ErrCircuitBreakerOpen
114114
}
115+
fallthrough
115116
case CircuitBreakerHalfOpen:
116117
requests := cb.requests.Add(1)
117118
if requests > int64(cb.maxRequests) {
@@ -168,10 +169,11 @@ func (cb *CircuitBreaker) recordSuccess() {
168169

169170
state := CircuitBreakerState(cb.state.Load())
170171

171-
if state == CircuitBreakerClosed {
172+
switch state {
173+
case CircuitBreakerClosed:
172174
// Reset failure count on success in closed state
173175
cb.failures.Store(0)
174-
} else if state == CircuitBreakerHalfOpen {
176+
case CircuitBreakerHalfOpen:
175177
successes := cb.successes.Add(1)
176178

177179
// If we've had enough successful requests, close the circuit

0 commit comments

Comments
 (0)