From 93352f03c169eddcdfc78dd40031d7920a5f81bb Mon Sep 17 00:00:00 2001 From: charlie <3140647@qq.com> Date: Tue, 26 Jul 2022 14:15:13 +0800 Subject: [PATCH] cleanup guard --- cleanup_guard/cleanup_guard.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 cleanup_guard/cleanup_guard.go diff --git a/cleanup_guard/cleanup_guard.go b/cleanup_guard/cleanup_guard.go new file mode 100644 index 0000000..50fa8ec --- /dev/null +++ b/cleanup_guard/cleanup_guard.go @@ -0,0 +1,24 @@ +package cleanupguard + +import "sync" + +type CleanupGuard struct { + enable bool + fn func() + mutex sync.Mutex +} + +// 新建清理 +func NewCleanupGuard(fn func()) CleanupGuard { + return CleanupGuard{fn: fn, enable: true} +} + +func (g *CleanupGuard) Enable() { + g.mutex.Lock() + defer g.mutex.Unlock() + g.enable = true +} + +func (g *CleanupGuard) Run() { + g.fn() +}