From: qydysky <32743305+qydysky@users.noreply.github.com> Date: Tue, 10 Jan 2023 13:31:27 +0000 (+0800) Subject: PlanDone X-Git-Tag: v0.20.1 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=59c94ec7fdad496692fb49d4a35f6faa6ce15427;p=part%2F.git PlanDone --- diff --git a/funcCtrl/FuncCtrl.go b/funcCtrl/FuncCtrl.go index 054c158..9ba7211 100644 --- a/funcCtrl/FuncCtrl.go +++ b/funcCtrl/FuncCtrl.go @@ -111,8 +111,11 @@ func (t *BlockFuncN) Plan(n int64) { } } -func (t *BlockFuncN) PlanDone() { +func (t *BlockFuncN) PlanDone(switchFuncs ...func()) { for atomic.LoadInt64(&t.plan) > 0 { + for i := 0; i < len(switchFuncs); i++ { + switchFuncs[i]() + } runtime.Gosched() } } diff --git a/funcCtrl/FuncCtrl_test.go b/funcCtrl/FuncCtrl_test.go index e640372..365d90b 100644 --- a/funcCtrl/FuncCtrl_test.go +++ b/funcCtrl/FuncCtrl_test.go @@ -94,6 +94,8 @@ func Test_BlockFuncNPlan(t *testing.T) { go a(1) go a(2) go a(3) - b.PlanDone() + b.PlanDone(func() { + time.Sleep(time.Microsecond * 10) + }) t.Log(`fin`) }