]> 127.0.0.1 Git - part/.git/commitdiff
1
authorqydysky <qydysky@foxmail.com>
Sat, 23 Mar 2024 10:08:30 +0000 (18:08 +0800)
committerqydysky <qydysky@foxmail.com>
Sat, 23 Mar 2024 10:08:30 +0000 (18:08 +0800)
.github/workflows/test.yml
funcCtrl/FuncCtrl.go
funcCtrl/FuncCtrl_test.go

index f471718e0e1a5a03fbddf994a22fe6350e910002..9fffbb6c95f8de45e15b81bb8b8ba974312af1ae 100644 (file)
@@ -75,6 +75,7 @@ jobs:
         go test -count 1 -timeout 5s -v -race github.com/qydysky/part/component
         go test -count 1 -timeout 15s -v -race github.com/qydysky/part/ctx
         go test -count 1 -timeout 5s -v -race github.com/qydysky/part/slice
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/bools
 
   u-test:
     name: u-test
@@ -109,6 +110,7 @@ jobs:
         go test -count 1 -timeout 5s -v -race github.com/qydysky/part/component
         go test -count 1 -timeout 15s -v -race github.com/qydysky/part/ctx
         go test -count 1 -timeout 5s -v -race github.com/qydysky/part/slice
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/bools
 
   test:
     name: test
@@ -121,6 +123,6 @@ jobs:
         echo "HASH=$(git rev-parse --short "$GITHUB_SHA")" >> $GITHUB_ENV
 
     - name: Upload a Release Asset
-      uses: softprops/action-gh-release@v1
+      uses: softprops/action-gh-release@v2
       with:
         tag_name: v0.28.${{ env.TIME }}
\ No newline at end of file
index ae9e41357704edf12b0525ced89192aab5233dfc..ab5cfc26c39c26c9f81cffa965dcd7d689160c9f 100644 (file)
@@ -111,6 +111,11 @@ func (t *BlockFuncN) UnBlock(failF ...func()) {
        t.n.Add(-1)
 }
 
+func (t *BlockFuncN) BlockF(failF ...func()) (unBlock func(failF ...func())) {
+       t.Block(failF...)
+       return t.UnBlock
+}
+
 func (t *BlockFuncN) BlockAll(failF ...func()) {
        for !t.n.CompareAndSwap(0, -1) {
                for i := 0; i < len(failF); i++ {
@@ -120,8 +125,16 @@ func (t *BlockFuncN) BlockAll(failF ...func()) {
        }
 }
 
-func (t *BlockFuncN) UnBlockAll() {
-       if !t.n.CompareAndSwap(-1, 0) {
-               panic("must BlockAll First")
+func (t *BlockFuncN) UnBlockAll(failF ...func()) {
+       for !t.n.CompareAndSwap(-1, 0) {
+               for i := 0; i < len(failF); i++ {
+                       failF[i]()
+               }
+               runtime.Gosched()
        }
 }
+
+func (t *BlockFuncN) BlockAllF(failF ...func()) (unBlock func(failF ...func())) {
+       t.BlockAll(failF...)
+       return t.UnBlockAll
+}
index 0ef03c72a58b4e41084ad2a5d043a5c38a6b2433..e8b220a0095f31e084bfdaefc40c43654630bb0f 100644 (file)
@@ -132,7 +132,7 @@ func Test_BlockFuncN(t *testing.T) {
                cc += <-c
        }
        if cc != "010212" {
-               t.Fatal()
+               t.Fatal(cc)
        }
        // t.Log(cc)
 }