diff --git a/common.go b/common.go new file mode 100644 index 0000000..2bc572a --- /dev/null +++ b/common.go @@ -0,0 +1,22 @@ +package mycommon + +import ( + "git.makemake.in/kzkzzzz/mycommon/mylog" + "runtime/debug" +) + +func SafeFn(fn func()) { + defer func() { + if err := recover(); err != nil { + mylog.Errorf("panic: %s\n%s", err, string(debug.Stack())) + } + }() + + fn() +} + +func SafeGo(fn func()) { + go func() { + SafeFn(fn) + }() +}