mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-04 19:17:47 +00:00
runtime: implement Goexit
This is needed for full support for the testing package
This commit is contained in:
committed by
Ron Evans
parent
65b085a5d5
commit
aed555d858
Vendored
+19
@@ -1,5 +1,10 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"runtime"
|
||||
"time"
|
||||
)
|
||||
|
||||
func main() {
|
||||
println("# simple recover")
|
||||
recoverSimple()
|
||||
@@ -22,6 +27,9 @@ func main() {
|
||||
|
||||
println("\n# defer panic")
|
||||
deferPanic()
|
||||
|
||||
println("\n# runtime.Goexit")
|
||||
runtimeGoexit()
|
||||
}
|
||||
|
||||
func recoverSimple() {
|
||||
@@ -104,6 +112,17 @@ func deferPanic() {
|
||||
println("defer panic")
|
||||
}
|
||||
|
||||
func runtimeGoexit() {
|
||||
go func() {
|
||||
defer func() {
|
||||
println("Goexit deferred function, recover is nil:", recover() == nil)
|
||||
}()
|
||||
|
||||
runtime.Goexit()
|
||||
}()
|
||||
time.Sleep(time.Millisecond)
|
||||
}
|
||||
|
||||
func printitf(msg string, itf interface{}) {
|
||||
switch itf := itf.(type) {
|
||||
case string:
|
||||
|
||||
Vendored
+3
@@ -27,3 +27,6 @@ recovered: panic 2
|
||||
# defer panic
|
||||
defer panic
|
||||
recovered from deferred call: deferred panic
|
||||
|
||||
# runtime.Goexit
|
||||
Goexit deferred function, recover is nil: true
|
||||
|
||||
Reference in New Issue
Block a user