mirror of
https://github.com/golang/go
synced 2024-11-25 05:27:57 -07:00
052a66babd
if there is a goroutine waiting to run and the init goroutine enters a system call, entersyscall was trying to kick off a new scheduler for the other goroutine, causing a panic (new goroutines can't run until main.main). R=r DELTA=32 (32 added, 0 deleted, 0 changed) OCL=31982 CL=31982
29 lines
539 B
Go
29 lines
539 B
Go
// $G $D/$F.go && $L $F.$A && ./$A.out
|
|
|
|
// Copyright 2009 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// This used to crash because the scheduler
|
|
// tried to kick off a new scheduling thread for f
|
|
// when time.Nanoseconds went into the system call.
|
|
// It's not okay to schedule new goroutines
|
|
// until main has started.
|
|
|
|
package main
|
|
|
|
import "log"
|
|
import "time"
|
|
|
|
func f() {
|
|
}
|
|
|
|
func init() {
|
|
go f();
|
|
time.Nanoseconds();
|
|
}
|
|
|
|
func main() {
|
|
}
|
|
|