From ea382abfa22ed4dc486343fdabc277f78a839ac7 Mon Sep 17 00:00:00 2001 From: SuperBrillaint <2647220550@qq.com> Date: Fri, 25 Mar 2022 18:08:24 +0800 Subject: [PATCH 1/2] async onStateChange async onStateChange function --- gobreaker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gobreaker.go b/gobreaker.go index 7503a27..84a52e1 100644 --- a/gobreaker.go +++ b/gobreaker.go @@ -356,7 +356,7 @@ func (cb *CircuitBreaker) setState(state State, now time.Time) { cb.toNewGeneration(now) if cb.onStateChange != nil { - cb.onStateChange(cb.name, prev, state) + go cb.onStateChange(cb.name, prev, state) } } From 929fed729bd467e47cbc0786fa343a355fbc3586 Mon Sep 17 00:00:00 2001 From: SuperBrillaint <2647220550@qq.com> Date: Sun, 27 Mar 2022 00:15:43 +0800 Subject: [PATCH 2/2] async onstatechange for passing testing --- gobreaker.go | 1 + 1 file changed, 1 insertion(+) diff --git a/gobreaker.go b/gobreaker.go index 84a52e1..0affa59 100644 --- a/gobreaker.go +++ b/gobreaker.go @@ -357,6 +357,7 @@ func (cb *CircuitBreaker) setState(state State, now time.Time) { if cb.onStateChange != nil { go cb.onStateChange(cb.name, prev, state) + runtime.Gosched() } }