aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/os1_linux.go
diff options
context:
space:
mode:
authorSrdjan Petrovic <spetrovic@google.com>2015-04-17 17:27:07 -0700
committerDavid Crawshaw <crawshaw@golang.org>2015-04-22 16:28:57 +0000
commitca9128f18fe75878ba2d5e0df09ae755c085f72a (patch)
tree14dc3f65d05c3425c251282b91b1fe1be2079895 /src/runtime/os1_linux.go
parent3f91a017f8f67cb9a744cf5d0a8b5db34a95808d (diff)
downloadgo-ca9128f18fe75878ba2d5e0df09ae755c085f72a.tar.xz
runtime: merge clone0 and clone
We initially added clone0 to handle the case when G or M don't exist, but it turns out that we could have just modified clone. (It also helps that the function we're invoking in clone0 no longer needs arguments.) As a side-effect, newosproc0 is now supported on all linux archs. Change-Id: Ie603af75d8f164310fc16446052d83743961f3ca Reviewed-on: https://go-review.googlesource.com/9164 Reviewed-by: David Crawshaw <crawshaw@golang.org>
Diffstat (limited to 'src/runtime/os1_linux.go')
-rw-r--r--src/runtime/os1_linux.go6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/runtime/os1_linux.go b/src/runtime/os1_linux.go
index 4214fa7cf7..a286dcd960 100644
--- a/src/runtime/os1_linux.go
+++ b/src/runtime/os1_linux.go
@@ -143,16 +143,16 @@ func newosproc(mp *m, stk unsafe.Pointer) {
}
}
-// Version of newosproc that doesn't require any Go structs to be allocated.
+// Version of newosproc that doesn't require a valid G.
//go:nosplit
-func newosproc0(stacksize uintptr, fn unsafe.Pointer, fnarg unsafe.Pointer) {
+func newosproc0(stacksize uintptr, fn unsafe.Pointer) {
var dummy uint64
stack := sysAlloc(stacksize, &dummy)
if stack == nil {
write(2, unsafe.Pointer(&failallocatestack[0]), int32(len(failallocatestack)))
exit(1)
}
- ret := clone0(cloneFlags, unsafe.Pointer(uintptr(stack)+stacksize), fn, fnarg)
+ ret := clone(cloneFlags, unsafe.Pointer(uintptr(stack)+stacksize), nil, nil, fn)
if ret < 0 {
write(2, unsafe.Pointer(&failthreadcreate[0]), int32(len(failthreadcreate)))
exit(1)