diff --git a/src/internal/task/task_stack.go b/src/internal/task/task_stack.go index ed938a63..81e0f9ad 100644 --- a/src/internal/task/task_stack.go +++ b/src/internal/task/task_stack.go @@ -2,7 +2,10 @@ package task -import "unsafe" +import ( + "runtime/interrupt" + "unsafe" +) //go:linkname runtimePanic runtime.runtimePanic func runtimePanic(str string) @@ -45,6 +48,9 @@ func Pause() { if *currentTask.state.canaryPtr != stackCanary { runtimePanic("goroutine stack overflow") } + if interrupt.In() { + runtimePanic("blocked inside interrupt") + } currentTask.state.pause() }