newOSProcDone = true
}
+// Can't be run with -race because it inserts calls into newOSProcCreated()
+// that require a valid G/M.
func TestNewOSProc0(t *testing.T) {
if runtime.GOOS == "android" && runtime.GOARCH == "arm" {
// newosproc0 does not work for android/arm.
t.Skipf("skipping on %v", runtime.GOOS)
}
runtime.NewOSProc0(0x800000, unsafe.Pointer(runtime.FuncPC(newOSProcCreated)))
- check, end := time.Tick(1*time.Second), time.Tick(5*time.Second)
+ check := time.NewTicker(1 * time.Second)
+ defer check.Stop()
+ end := time.After(5 * time.Second)
for {
select {
- case <-check:
+ case <-check.C:
if newOSProcDone {
return
}
// When building with -buildmode=c-shared, this symbol is called when the shared
// library is loaded.
-TEXT _rt0_amd64_linux_lib(SB),NOSPLIT,$0x40
+TEXT _rt0_amd64_linux_lib(SB),NOSPLIT,$0x48
MOVQ BX, 0x10(SP)
MOVQ BP, 0x18(SP)
MOVQ R12, 0x20(SP)