16 lines
346 B
Go
16 lines
346 B
Go
package weblive
|
||
|
||
import "log"
|
||
|
||
// goSafe 在独立 goroutine 中运行 fn;panic 只记录日志,避免拖垮整个 HTTP 进程(否则 Nginx 会看到 502)。
|
||
func goSafe(label string, fn func()) {
|
||
go func() {
|
||
defer func() {
|
||
if r := recover(); r != nil {
|
||
log.Printf("weblive: panic in %s: %v", label, r)
|
||
}
|
||
}()
|
||
fn()
|
||
}()
|
||
}
|