From 59c94ec7fdad496692fb49d4a35f6faa6ce15427 Mon Sep 17 00:00:00 2001 From: qydysky <32743305+qydysky@users.noreply.github.com> Date: Tue, 10 Jan 2023 21:31:27 +0800 Subject: [PATCH] PlanDone --- funcCtrl/FuncCtrl.go | 5 ++++- funcCtrl/FuncCtrl_test.go | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) 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`) } -- 2.39.2