1
0
mirror of https://github.com/golang/go synced 2024-11-18 13:54:59 -07:00

runtime: cleanup after conversion to Go

Change-Id: I7c41cc6a5ab9fb3b0cc3812cf7e9776884658778
Reviewed-on: https://go-review.googlesource.com/4671
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Dmitry Vyukov 2015-02-12 10:18:31 +03:00
parent 01ef6dbfa5
commit 8090f868fc
4 changed files with 13 additions and 22 deletions

View File

@ -6,6 +6,11 @@ package runtime
import "unsafe"
func close(fd int32) int32
//go:noescape
func open(name *byte, mode, perm int32) int32
//go:noescape
func pread(fd int32, buf unsafe.Pointer, nbytes int32, offset int64) int32

View File

@ -32,7 +32,9 @@ func main() {
maxstacksize = 250000000
}
systemstack(newsysmon)
systemstack(func() {
newm(sysmon, nil)
})
// Lock the main goroutine onto this, the main OS thread,
// during initialization. Most programs won't care, but a few

View File

@ -81,10 +81,6 @@ func schedinit() {
}
}
func newsysmon() {
_newm(sysmon, nil)
}
func dumpgstatus(gp *g) {
_g_ := getg()
print("runtime: gp: gp=", gp, ", goid=", gp.goid, ", gp->atomicstatus=", readgstatus(gp), "\n")
@ -638,7 +634,7 @@ func starttheworld() {
notewakeup(&mp.park)
} else {
// Start M to run P. Do not start another M below.
_newm(nil, p)
newm(nil, p)
add = false
}
}
@ -658,7 +654,7 @@ func starttheworld() {
// coordinate. This lazy approach works out in practice:
// we don't mind if the first couple gc rounds don't have quite
// the maximum number of procs.
_newm(mhelpgc, nil)
newm(mhelpgc, nil)
}
_g_.m.locks--
if _g_.m.locks == 0 && _g_.preempt { // restore the preemption request in case we've cleared it in newstack
@ -960,7 +956,7 @@ func unlockextra(mp *m) {
}
// Create a new m. It will start off with a call to fn, or else the scheduler.
func _newm(fn func(), _p_ *p) {
func newm(fn func(), _p_ *p) {
mp := allocm(_p_)
mp.nextp = _p_
mp.mstartfn = *(*unsafe.Pointer)(unsafe.Pointer(&fn))
@ -1037,7 +1033,7 @@ func startm(_p_ *p, spinning bool) {
if spinning {
fn = mspinning
}
_newm(fn, _p_)
newm(fn, _p_)
return
}
if mp.spinning {
@ -2667,7 +2663,7 @@ func checkdead() {
}
mp := mget()
if mp == nil {
_newm(nil, _p_)
newm(nil, _p_)
} else {
mp.nextp = _p_
notewakeup(&mp.park)

View File

@ -1,12 +0,0 @@
// Copyright 2014 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.
// +build plan9
package runtime
func close(fd int32) int32
//go:noescape
func open(name *byte, mode, perm int32) int32