|
@@ -1,15 +1,15 @@
|
|
|
// Author: NiuJiuRu
|
|
// Author: NiuJiuRu
|
|
|
// Email: niujiuru@qq.com
|
|
// Email: niujiuru@qq.com
|
|
|
|
|
|
|
|
-package SingleTask
|
|
|
|
|
|
|
+package singletask
|
|
|
|
|
|
|
|
import "sync/atomic"
|
|
import "sync/atomic"
|
|
|
|
|
|
|
|
-type SingleTask struct {
|
|
|
|
|
|
|
+type OnceTask struct {
|
|
|
running atomic.Bool
|
|
running atomic.Bool
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (t *SingleTask) Run(f func(), async bool) {
|
|
|
|
|
|
|
+func (t *OnceTask) Run(f func(), async bool) {
|
|
|
if !t.running.CompareAndSwap(false, true) {
|
|
if !t.running.CompareAndSwap(false, true) {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
@@ -26,6 +26,6 @@ func (t *SingleTask) Run(f func(), async bool) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (t *SingleTask) IsRunning() bool {
|
|
|
|
|
|
|
+func (t *OnceTask) IsRunning() bool {
|
|
|
return t.running.Load()
|
|
return t.running.Load()
|
|
|
}
|
|
}
|