From 926373ea79cb590352c9acae96288935ec2c8f47 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Thu, 12 Oct 2017 01:39:46 +0200 Subject: [PATCH] runtime: fix crash on Plan 9 Since CL 46037, the runtime is crashing after calling exitThread on Plan 9. The exitThread function shouldn't be called on Plan 9, because the system manages thread stacks. Fixes #22221. Change-Id: I5d61c9660a87dc27e4cfcb3ca3ddcb4b752f2397 Reviewed-on: https://go-review.googlesource.com/70190 Run-TryBot: David du Colombier <0intro@gmail.com> TryBot-Result: Gobot Gobot Reviewed-by: Austin Clements --- src/runtime/proc.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/runtime/proc.go b/src/runtime/proc.go index d096df547ec..b41f0c5ef80 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -1170,10 +1170,10 @@ func mstart() { mstart1(0) // Exit this thread. - if GOOS == "windows" || GOOS == "solaris" { - // Windows and Solaris always system-allocate the - // stack, but put it in _g_.stack before mstart, so - // the logic above hasn't set osStack yet. + if GOOS == "windows" || GOOS == "solaris" || GOOS == "plan9" { + // Window, Solaris and Plan 9 always system-allocate + // the stack, but put it in _g_.stack before mstart, + // so the logic above hasn't set osStack yet. osStack = true } mexit(osStack)