1
0
mirror of https://github.com/golang/go synced 2024-10-03 03:11:21 -06:00
go/src/runtime
Austin Clements ad731887a7 runtime: call goexit1 instead of goexit
Currently, runtime.Goexit() calls goexit()—the goroutine exit stub—to
terminate the goroutine. This *mostly* works, but can cause a
"leftover stack barriers" panic if the following happens:

1. Goroutine A has a reasonably large stack.

2. The garbage collector scan phase runs and installs stack barriers
   in A's stack. The top-most stack barrier happens to fall at address X.

3. Goroutine A unwinds the stack far enough to be a candidate for
   stack shrinking, but not past X.

4. Goroutine A calls runtime.Goexit(), which calls goexit(), which
   calls goexit1().

5. The garbage collector enters mark termination.

6. Goroutine A is preempted right at the prologue of goexit1() and
   performs a stack shrink, which calls gentraceback.

gentraceback stops as soon as it sees goexit on the stack, which is
only two frames up at this point, even though there may really be many
frames above it. More to the point, the stack barrier at X is above
the goexit frame, so gentraceback never sees that stack barrier. At
the end of gentraceback, it checks that it saw all of the stack
barriers and panics because it didn't see the one at X.

The fix is simple: call goexit1, which actually implements the process
of exiting a goroutine, rather than goexit, the exit stub.

To make sure this doesn't happen again in the future, we also add an
argument to the stub prototype of goexit so you really, really have to
want to call it in order to call it. We were able to reliably
reproduce the above sequence with a fair amount of awful code inserted
at the right places in the runtime, but chose to change the goexit
prototype to ensure this wouldn't happen again rather than pollute the
runtime with ugly testing code.

Change-Id: Ifb6fb53087e09a252baddadc36eebf954468f2a8
Reviewed-on: https://go-review.googlesource.com/13323
Reviewed-by: Russ Cox <rsc@golang.org>
2015-08-06 20:21:05 +00:00
..
cgo runtime/cgo: fix darwin/amd64 signal handling setup 2015-07-30 19:18:45 +00:00
debug runtime: use 64k page rounding on arm64 2015-07-28 19:59:00 +00:00
pprof runtime/pprof: document content of heap profile 2015-07-27 16:30:27 +00:00
race all: link to https instead of http 2015-07-11 14:36:33 +00:00
trace runtime/trace: test requires 'go tool addr2line' 2015-07-30 05:57:37 +00:00
alg.go reflect: implement ArrayOf 2015-04-21 15:21:09 +00:00
append_test.go
arch1_386.go runtime: enable profiling on g0 2015-05-11 08:44:30 +00:00
arch1_amd64.go runtime: enable profiling on g0 2015-05-11 08:44:30 +00:00
arch1_amd64p32.go runtime: enable profiling on g0 2015-05-11 08:44:30 +00:00
arch1_arm64.go runtime: use 64k page rounding on arm64 2015-07-28 19:59:00 +00:00
arch1_arm.go runtime: enable profiling on g0 2015-05-11 08:44:30 +00:00
arch1_ppc64.go runtime: enable profiling on g0 2015-05-11 08:44:30 +00:00
arch1_ppc64le.go runtime: enable profiling on g0 2015-05-11 08:44:30 +00:00
arch_386.go
arch_amd64.go
arch_amd64p32.go
arch_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
arch_arm.go
arch_ppc64.go all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
arch_ppc64le.go all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
asm_386.s runtime: ensure GC sees type-safe memory on weak machines 2015-06-19 15:29:50 +00:00
asm_amd64.s runtime: ensure GC sees type-safe memory on weak machines 2015-06-19 15:29:50 +00:00
asm_amd64p32.s runtime: ensure GC sees type-safe memory on weak machines 2015-06-19 15:29:50 +00:00
asm_arm64.s runtime, reflect: use correctly aligned stack frame sizes on arm64 2015-07-29 21:35:35 +00:00
asm_arm.s runtime: fix systemstack tracebacks on nacl/arm 2015-07-31 04:35:38 +00:00
asm_ppc64x.s runtime: rename cgocall_errno and asmcgocall_errno into cgocall and asmcgocall 2015-06-19 01:47:11 +00:00
asm.s [dev.cc] runtime: convert assembly files for C to Go transition 2014-11-11 17:06:22 -05:00
atomic_386.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
atomic_amd64x.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
atomic_arm64.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
atomic_arm64.s runtime: ensure GC sees type-safe memory on weak machines 2015-06-19 15:29:50 +00:00
atomic_arm.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
atomic_pointer.go runtime: remove wbshadow mode 2015-05-11 14:55:11 +00:00
atomic_ppc64x.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
atomic_ppc64x.s runtime: ensure GC sees type-safe memory on weak machines 2015-06-19 15:29:50 +00:00
atomic_test.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
cgo.go cmd/cgo: make sure pointers passed to C escape to heap 2015-06-15 17:39:53 +00:00
cgocall.go runtime: store syscall parameters in m not on stack 2015-06-29 02:45:45 +00:00
cgocallback.go runtime: delete cgo_allocate 2015-04-17 01:30:47 +00:00
chan_test.go runtime: fix data race in BenchmarkChanPopular 2015-06-02 11:16:01 +00:00
chan.go runtime: add memory barrier for sync send in select 2015-07-13 19:10:22 +00:00
chanbarrier_test.go runtime: fix race in TestChanSendBarrier 2015-07-13 19:42:20 +00:00
closure_test.go
compiler.go Fix several out of date references to 4g/5g/6g/8g/9g. 2015-06-26 03:38:21 +00:00
complex_test.go
complex.go [dev.cc] runtime: convert basic library routines from C to Go 2014-11-11 17:07:06 -05:00
cpuprof.go runtime: merge slice and sliceStruct 2015-04-15 16:59:49 +00:00
cputicks.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
crash_cgo_test.go runtime: skip TestCgoCallbackGC on dragonfly 2015-08-03 04:41:48 +00:00
crash_test.go all: extract "can I exec?" check from tests into internal/testenv 2015-06-16 18:07:36 +00:00
crash_unix_test.go runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
debug.go runtime: clarify that NumCPU returns only available CPUs 2015-07-10 21:28:49 +00:00
defs1_linux.go
defs1_netbsd_386.go [dev.cc] runtime: convert netbsd/386 port to Go 2014-11-22 22:09:11 +11:00
defs1_netbsd_amd64.go [dev.cc] runtime: convert netbsd/amd64 port to Go 2014-11-22 16:05:31 +11:00
defs1_netbsd_arm.go runtime: convert netbsd/arm to Go 2014-12-05 16:17:09 -05:00
defs1_solaris_amd64.go [dev.cc] runtime: convert Solaris port to Go 2014-11-13 16:07:10 +01:00
defs2_linux.go
defs3_linux.go all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
defs_arm_linux.go
defs_darwin_386.go runtime: use uintXX instead of *byte for si_addr on Darwin 2015-03-26 16:20:32 +00:00
defs_darwin_amd64.go runtime: use uintXX instead of *byte for si_addr on Darwin 2015-03-26 16:20:32 +00:00
defs_darwin_arm64.go runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
defs_darwin_arm.go runtime: use uintXX instead of *byte for si_addr on Darwin 2015-03-26 16:20:32 +00:00
defs_darwin.go
defs_dragonfly_amd64.go [dev.cc] runtime: change set_sec to take int64 2014-11-14 14:50:00 -05:00
defs_dragonfly.go all: remove dragonfly/386 port 2015-03-14 10:47:19 +00:00
defs_freebsd_386.go [dev.cc] runtime: change set_sec to take int64 2014-11-14 14:50:00 -05:00
defs_freebsd_amd64.go [dev.cc] runtime: change set_sec to take int64 2014-11-14 14:50:00 -05:00
defs_freebsd_arm.go [dev.cc] runtime: change set_sec to take int64 2014-11-14 14:50:00 -05:00
defs_freebsd.go
defs_linux_386.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
defs_linux_amd64.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
defs_linux_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
defs_linux_arm.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
defs_linux_ppc64.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
defs_linux_ppc64le.go runtime: mark pages we return to kernel as NOHUGEPAGE 2015-02-25 21:16:18 +00:00
defs_linux.go
defs_nacl_386.go runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
defs_nacl_amd64p32.go runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
defs_nacl_arm.go runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
defs_netbsd_386.go
defs_netbsd_amd64.go
defs_netbsd_arm.go
defs_netbsd.go
defs_openbsd_386.go [dev.cc] runtime: change set_sec to take int64 2014-11-14 14:50:00 -05:00
defs_openbsd_amd64.go [dev.cc] runtime: change set_sec to take int64 2014-11-14 14:50:00 -05:00
defs_openbsd_arm.go runtime: add support for openbsd/arm 2015-03-15 04:06:26 +00:00
defs_openbsd.go
defs_plan9_386.go runtime: consolidate arch-specific signal handlers on Plan 9 2014-12-30 14:36:15 +00:00
defs_plan9_amd64.go runtime: consolidate arch-specific signal handlers on Plan 9 2014-12-30 14:36:15 +00:00
defs_solaris_amd64.go
defs_solaris.go
defs_windows_386.go runtime: use (*context) ip, setip, sp and setsp everywhere on windows 2015-04-09 00:57:28 +00:00
defs_windows_amd64.go runtime: use (*context) ip, setip, sp and setsp everywhere on windows 2015-04-09 00:57:28 +00:00
defs_windows.go runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
duff_386.s runtime: auto-generate duff routines 2015-04-02 02:37:59 +00:00
duff_amd64.s cmd/6g, runtime: improve duffzero throughput 2015-04-15 19:17:07 +00:00
duff_arm64.s runtime: auto-generate duff routines 2015-04-02 02:37:59 +00:00
duff_arm.s runtime: auto-generate duff routines 2015-04-02 02:37:59 +00:00
duff_ppc64x.s all: use RET instead of RETURN on ppc64 2015-06-06 00:07:23 +00:00
env_plan9.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
env_posix.go runtime: rename cgocall_errno and asmcgocall_errno into cgocall and asmcgocall 2015-06-19 01:47:11 +00:00
env_test.go runtime: fix TestFixedGOROOT to properly restore the GOROOT env var after test 2015-06-03 23:33:48 +00:00
error.go cmd/internal/gc: inline x := y.(*T) and x, ok := y.(*T) 2015-03-20 20:05:37 +00:00
export_arm_test.go runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
export_futex_test.go
export_linux_test.go runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
export_test.go cmd/compile: fix uninitialized memory during type switch assertE2I2 2015-07-30 05:21:56 +00:00
export_windows_test.go runtime: do not display Windows Error Reporting dialogue 2015-01-06 05:31:40 +00:00
extern.go runtime: document gctrace format 2015-07-27 17:45:34 +00:00
funcdata.h [dev.cc] runtime: convert header files to Go 2014-11-11 17:05:19 -05:00
futex_test.go [dev.cc] runtime: convert scheduler from C to Go 2014-11-11 17:08:33 -05:00
gc_test.go cmd/compile: fix uninitialized memory during type switch assertE2I2 2015-07-30 05:21:56 +00:00
gcinfo_test.go runtime: test and fix heap bitmap for 1-pointer allocation on 32-bit system 2015-05-15 18:47:00 +00:00
gengoos.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
go_tls.h [dev.cc] cmd/dist: adjust for build process without cmd/cc 2014-11-11 01:29:05 -05:00
hash32.go runtime: remove size argument from hash and equal algorithms 2015-01-07 21:57:01 +00:00
hash64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
hash_test.go runtime: a better fallback hash 2014-12-22 22:41:01 +00:00
hashmap_fast.go runtime: remove size argument from hash and equal algorithms 2015-01-07 21:57:01 +00:00
hashmap.go cmd/compile, runtime: fix placement of map bucket overflow pointer on nacl 2015-07-31 18:49:32 +00:00
heapdump.go all: link to https instead of http 2015-07-11 14:36:33 +00:00
iface_test.go cmd/gc: allocate backing storage for non-escaping interfaces on stack 2015-03-30 16:11:22 +00:00
iface.go cmd/compile: fix uninitialized memory during type switch assertE2I2 2015-07-30 05:21:56 +00:00
lfstack_32bit.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
lfstack_amd64.go [dev.cc] runtime: fix lfstack for amd64 addresses in top half of addr space 2014-11-14 12:55:23 -05:00
lfstack_darwin_arm64.go runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
lfstack_linux_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
lfstack_linux_ppc64x.go all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
lfstack_test.go all: fix misprints in comments 2015-06-11 14:18:57 +00:00
lfstack.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
lock_futex.go runtime: make notetsleep_internal nowritebarrier 2015-07-27 19:58:58 +00:00
lock_sema.go runtime: fix writebarrier throw in lock_sema 2015-03-17 19:20:11 +00:00
Makefile
malloc_test.go runtime: fix MemStats.{PauseNS,PauseEnd,PauseTotalNS,LastGC} 2015-07-13 23:32:59 +00:00
malloc.go runtime: don't recheck heap trigger for periodic GC 2015-08-05 17:28:56 +00:00
map_test.go cmd/gc: fix noscan maps 2015-02-15 08:52:14 +00:00
mapspeed_test.go cmd/gc: don't call memequal twice in generated type.eq routines 2015-02-26 00:34:29 +00:00
mbarrier.go runtime: fix go:nowritebarrier annotation on gcmarkwb_m 2015-07-15 21:06:13 +00:00
mbitmap.go runtime: set invalidptr=1 by default, as documented 2015-07-29 23:50:20 +00:00
mcache.go runtime: track "scannable" bytes of heap 2015-05-06 19:40:33 +00:00
mcentral.go runtime: make sweep proportional to spans bytes allocated 2015-08-04 18:54:44 +00:00
mem_bsd.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
mem_darwin.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
mem_linux.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
mem_plan9.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
mem_windows.go runtime: implement xadduintptr and update system mstats using it 2015-04-24 16:53:26 +00:00
memclr_386.s [dev.power64] cmd/5a, cmd/6a, cmd/8a, cmd/9a: make labels function-scoped 2014-10-28 21:50:16 -04:00
memclr_amd64.s [dev.power64] cmd/5a, cmd/6a, cmd/8a, cmd/9a: make labels function-scoped 2014-10-28 21:50:16 -04:00
memclr_arm64.s runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
memclr_arm.s [dev.cc] all: edit assembly source for ARM to be more regular 2015-02-13 23:08:51 +00:00
memclr_plan9_386.s [dev.power64] cmd/5a, cmd/6a, cmd/8a, cmd/9a: make labels function-scoped 2014-10-28 21:50:16 -04:00
memclr_plan9_amd64.s
memclr_ppc64x.s all: use RET instead of RETURN on ppc64 2015-06-06 00:07:23 +00:00
memmove_386.s
memmove_amd64.s
memmove_arm64.s runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
memmove_arm.s [dev.cc] all: edit assembly source for ARM to be more regular 2015-02-13 23:08:51 +00:00
memmove_linux_amd64_test.go
memmove_nacl_amd64p32.s
memmove_plan9_386.s
memmove_plan9_amd64.s
memmove_ppc64x.s all: use RET instead of RETURN on ppc64 2015-06-06 00:07:23 +00:00
memmove_test.go cmd/6g, runtime: improve duffzero throughput 2015-04-15 19:17:07 +00:00
mfinal_test.go runtime: enable TestEmptySlice 2015-07-30 04:47:16 +00:00
mfinal.go cmd/internal/gc, runtime: use 1-bit bitmap for stack frames, data, bss 2015-05-01 18:44:36 +00:00
mfixalloc.go runtime,reflect,cmd/internal/gc: Fix comments referring to .c/.h files 2015-03-11 20:19:43 +00:00
mgc.go runtime: don't recheck heap trigger for periodic GC 2015-08-05 17:28:56 +00:00
mgcmark.go runtime: enable GC assists ASAP 2015-07-27 19:59:05 +00:00
mgcsweep.go runtime: make sweep proportional to spans bytes allocated 2015-08-04 18:54:44 +00:00
mgcwork.go runtime: force mutator to give work buffer to GC 2015-07-29 18:56:11 +00:00
mheap.go runtime: don't recheck heap trigger for periodic GC 2015-08-05 17:28:56 +00:00
mkduff.go cmd/internal/gc, cmd/[56789]g: rename stackcopy to blockcopy 2015-04-29 00:28:01 +00:00
mknacl.sh
mprof.go runtime: factor stoptheworld/starttheworld pattern 2015-05-18 14:55:25 +00:00
msize.go runtime: Speed up heapBitsForObject 2015-04-20 21:39:06 +00:00
mstats.go runtime: report GC CPU utilization in MemStats 2015-07-29 20:23:34 +00:00
netpoll_epoll.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
netpoll_kqueue.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
netpoll_nacl.go
netpoll_solaris.go all: fix misprints in comments 2015-06-11 14:18:57 +00:00
netpoll_stub.go runtime: define netpollinited on Plan 9 2015-01-14 22:04:56 +00:00
netpoll_windows.go runtime: replace func-based write barrier skipping with type-based 2015-04-20 20:20:09 +00:00
netpoll.go all: fix misprints in comments 2015-06-11 14:18:57 +00:00
noasm.go runtime: add arm64 runtime.cmpstring and bytes.Compare 2015-04-09 14:49:31 +00:00
norace_linux_test.go runtime: re-enable TestNewProc0 on android/arm and fix heap corruption 2015-04-29 19:18:07 +00:00
norace_test.go [dev.cc] runtime: convert race implementation from C to Go 2014-11-11 17:08:14 -05:00
os1_darwin.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_dragonfly.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_freebsd.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_linux.go runtime: pass a smaller buffer to sched_getaffinity on ARM 2015-07-27 01:04:10 +00:00
os1_nacl.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_netbsd_386.go [dev.cc] runtime: convert netbsd/386 port to Go 2014-11-22 22:09:11 +11:00
os1_netbsd_amd64.go [dev.cc] runtime: convert netbsd/amd64 port to Go 2014-11-22 16:05:31 +11:00
os1_netbsd.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_openbsd.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_plan9.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os1_windows.go runtime: use AddVectoredContinueHandler on Windows XP amd64 2015-07-11 07:02:57 +00:00
os2_darwin.go [dev.cc] runtime: convert operating system support code from C to Go 2014-11-11 17:08:54 -05:00
os2_dragonfly.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os2_freebsd.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os2_linux.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os2_nacl.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
os2_netbsd.go [dev.cc] runtime: convert netbsd/amd64 port to Go 2014-11-22 16:05:31 +11:00
os2_openbsd.go [dev.cc] runtime: convert openbsd/amd64 port to Go 2014-11-14 13:01:12 +11:00
os2_plan9.go runtime: log all thread stack traces during GODEBUG=crash on Linux and OS X 2015-01-14 18:33:38 +00:00
os2_solaris.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os2_windows.go runtime: do not calculate asmstdcall address every time we make syscall 2015-04-09 04:26:44 +00:00
os3_plan9.go runtime: fix x86 stack trace for call to heap memory on Plan 9 2015-07-28 19:01:41 +00:00
os3_solaris.go runtime: don't define libc_getpid in os3_solaris.go 2015-07-28 14:07:17 +00:00
os_android_arm.go runtime: export main.main for android 2015-04-17 12:11:04 +00:00
os_darwin_arm64.go runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
os_darwin_arm.go runtime: darwin/arm support 2015-02-06 05:48:56 +00:00
os_darwin.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os_dragonfly.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os_freebsd_arm.go [dev.cc] runtime: convert freebsd to Go 2014-11-11 23:00:29 -05:00
os_freebsd.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os_linux_386.go runtime: clean up & go-ify the hash function seeder 2014-12-10 21:15:35 +00:00
os_linux_arm64.go runtime: mark all runtime.cputicks implementations NOSPLIT 2015-04-15 09:22:15 +00:00
os_linux_arm.go runtime: fix typos in os_linux_arm.go 2015-06-17 08:51:59 +00:00
os_linux.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
os_nacl_arm.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
os_nacl.go runtime: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +00:00
os_netbsd_arm.go runtime: convert netbsd/arm to Go 2014-12-05 16:17:09 -05:00
os_netbsd.go runtime: remove unnecessary noescape to fix netbsd 2015-04-27 23:04:38 +00:00
os_openbsd_arm.go runtime: add support for openbsd/arm 2015-03-15 04:06:26 +00:00
os_openbsd.go runtime: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +00:00
os_plan9.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
os_solaris.go runtime: rename cgocall_errno and asmcgocall_errno into cgocall and asmcgocall 2015-06-19 01:47:11 +00:00
os_windows.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
panic1.go runtime: unwind stack barriers when writing above the current frame 2015-06-07 17:57:47 +00:00
panic.go runtime: call goexit1 instead of goexit 2015-08-06 20:21:05 +00:00
parfor_test.go runtime: eliminate parfor ctx field 2015-01-29 17:38:16 +00:00
parfor.go runtime: use func value for parfor body 2015-01-29 17:38:32 +00:00
print1_write_android.go [dev.cc] runtime: print to stderr as well as android logd 2015-02-20 18:30:09 +00:00
print1_write.go runtime: add missing copyright notices 2015-01-09 20:06:33 +00:00
print1.go runtime: merge slice and sliceStruct 2015-04-15 16:59:49 +00:00
proc1.go runtime: fix race that dropped GoSysExit events from trace 2015-08-06 19:29:09 +00:00
proc_test.go runtime: disable TestGoroutineParallelism on uniprocessor 2015-07-22 18:53:12 +00:00
proc.go runtime: don't recheck heap trigger for periodic GC 2015-08-05 17:28:56 +00:00
race0.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
race1.go runtime, cmd/internal/ld: rename themoduledata to firstmoduledata 2015-04-10 05:11:49 +00:00
race_amd64.s runtime: adjust program counters in race detector 2015-02-20 18:04:16 +00:00
race.go runtime: adjust program counters in race detector 2015-02-20 18:04:16 +00:00
rdebug.go [dev.cc] runtime: convert scheduler from C to Go 2014-11-11 17:08:33 -05:00
rt0_android_arm.s runtime: shared library init support for android/arm. 2015-04-13 21:53:15 +00:00
rt0_darwin_386.s
rt0_darwin_amd64.s runtime: darwin/amd64 library entry point 2015-04-08 21:53:52 +00:00
rt0_darwin_arm64.s runtime: darwin/arm64 c-archive entry point 2015-04-16 18:56:54 +00:00
rt0_darwin_arm.s runtime: library entry point for darwin/arm 2015-04-12 12:49:49 +00:00
rt0_dragonfly_amd64.s
rt0_freebsd_386.s
rt0_freebsd_amd64.s
rt0_freebsd_arm.s runtime: add support for openbsd/arm 2015-03-15 04:06:26 +00:00
rt0_linux_386.s runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
rt0_linux_amd64.s runtime: deflake TestNewOSProc0, fix _rt0_amd64_linux_lib stack alignment 2015-04-23 23:09:03 +00:00
rt0_linux_arm64.s runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
rt0_linux_arm.s runtime: merge clone0 and clone 2015-04-22 16:28:57 +00:00
rt0_linux_ppc64.s cmd/cgo, runtime/cgo: support ppc64 2015-01-07 20:36:27 +00:00
rt0_linux_ppc64le.s cmd/cgo, runtime/cgo: support ppc64 2015-01-07 20:36:27 +00:00
rt0_nacl_386.s
rt0_nacl_amd64p32.s runtime: disable fake time on nacl 2014-10-27 20:47:15 -04:00
rt0_nacl_arm.s
rt0_netbsd_386.s
rt0_netbsd_amd64.s
rt0_netbsd_arm.s runtime: add support for openbsd/arm 2015-03-15 04:06:26 +00:00
rt0_openbsd_386.s
rt0_openbsd_amd64.s
rt0_openbsd_arm.s runtime: add support for openbsd/arm 2015-03-15 04:06:26 +00:00
rt0_plan9_386.s
rt0_plan9_amd64.s
rt0_solaris_amd64.s
rt0_windows_386.s runtime: use _main instead of main on windows/386 2015-03-24 03:23:03 +00:00
rt0_windows_amd64.s [dev.cc] runtime: convert assembly files for C to Go transition 2014-11-11 17:06:22 -05:00
rune.go runtime,reflect,cmd/internal/gc: Fix comments referring to .c/.h files 2015-03-11 20:19:43 +00:00
runtime1.go runtime: set invalidptr=1 by default, as documented 2015-07-29 23:50:20 +00:00
runtime2.go runtime: change arm software div/mod call sequence not to modify stack 2015-07-30 16:14:05 +00:00
runtime_linux_test.go
runtime_test.go runtime: reduce slice growth during append to 2x 2015-06-26 17:49:33 +00:00
runtime_unix_test.go runtime: multi-threaded, utilization-scheduled background mark 2015-04-21 15:35:32 +00:00
runtime-gdb_test.go runtime: require gdb version 7.9 for gdb test 2015-07-24 17:15:44 +00:00
runtime-gdb.py runtime: Fix GDB integration with Python 2 2015-04-10 22:17:59 +00:00
runtime.go runtime: auto-generate duff routines 2015-04-02 02:37:59 +00:00
select.go runtime: add memory barrier for sync send in select 2015-07-13 19:10:22 +00:00
sema.go runtime: remove runtime frames from stacks in traces 2015-03-10 14:46:15 +00:00
signal1_unix.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
signal_386.go runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
signal_amd64x.go runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
signal_arm64.go runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
signal_arm.go runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
signal_darwin_386.go runtime: use uintXX instead of *byte for si_addr on Darwin 2015-03-26 16:20:32 +00:00
signal_darwin_amd64.go runtime: use uintXX instead of *byte for si_addr on Darwin 2015-03-26 16:20:32 +00:00
signal_darwin_arm64.go runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
signal_darwin_arm.go runtime: use uintXX instead of *byte for si_addr on Darwin 2015-03-26 16:20:32 +00:00
signal_darwin.go runtime: don't always unblock all signals 2015-05-22 20:24:08 +00:00
signal_dragonfly_amd64.go [dev.cc] runtime: convert dragonfly/amd64 port to Go 2014-11-15 04:47:20 +11:00
signal_dragonfly.go [dev.cc] runtime: convert dragonfly/amd64 port to Go 2014-11-15 04:47:20 +11:00
signal_freebsd_386.go [dev.cc] runtime: convert freebsd to Go 2014-11-11 23:00:29 -05:00
signal_freebsd_amd64.go [dev.cc] runtime: convert freebsd to Go 2014-11-11 23:00:29 -05:00
signal_freebsd_arm.go [dev.cc] runtime: convert freebsd to Go 2014-11-11 23:00:29 -05:00
signal_freebsd.go [dev.cc] runtime: make SIGSYS notifiable on freebsd (again) 2014-11-14 04:29:03 +11:00
signal_linux_386.go [dev.cc] runtime: add explicit siginfo.si_addr field 2014-11-19 14:56:49 -05:00
signal_linux_amd64.go [dev.cc] runtime: add explicit siginfo.si_addr field 2014-11-19 14:56:49 -05:00
signal_linux_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
signal_linux_arm.go [dev.cc] runtime: add explicit siginfo.si_addr field 2014-11-19 14:56:49 -05:00
signal_linux_ppc64x.go all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
signal_linux.go runtime: don't always unblock all signals 2015-05-22 20:24:08 +00:00
signal_nacl_386.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
signal_nacl_amd64p32.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
signal_nacl_arm.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
signal_nacl.go [dev.cc] runtime: convert nacl support to Go 2014-11-21 10:22:18 -05:00
signal_netbsd_386.go [dev.cc] runtime: convert netbsd/386 port to Go 2014-11-22 22:09:11 +11:00
signal_netbsd_amd64.go [dev.cc] runtime: convert netbsd/amd64 port to Go 2014-11-22 16:05:31 +11:00
signal_netbsd_arm.go runtime: convert netbsd/arm to Go 2014-12-05 16:17:09 -05:00
signal_netbsd.go runtime: don't always unblock all signals 2015-05-22 20:24:08 +00:00
signal_openbsd_386.go [dev.cc] runtime: convert openbsd/386 port to Go 2014-11-15 03:55:14 +11:00
signal_openbsd_amd64.go [dev.cc] runtime: convert openbsd/amd64 port to Go 2014-11-14 13:01:12 +11:00
signal_openbsd_arm.go runtime: add support for openbsd/arm 2015-03-15 04:06:26 +00:00
signal_openbsd.go [dev.cc] runtime: convert openbsd/amd64 port to Go 2014-11-14 13:01:12 +11:00
signal_plan9.go runtime: remove C-style strcmp and strncmp helpers 2015-02-16 04:07:19 +00:00
signal_ppc64x.go runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
signal_solaris_amd64.go [dev.cc] runtime: fix nil pointer crash handler bug on Solaris 2014-11-14 14:25:49 +01:00
signal_solaris.go runtime: don't always unblock all signals 2015-05-22 20:24:08 +00:00
signal_unix.go runtime: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +00:00
signal_windows.go runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
sigpanic_unix.go runtime/cgo: catch EXC_BAD_ACCESS on darwin/arm 2015-03-17 12:12:48 +00:00
sigqueue_plan9.go runtime: fix signal handling on Plan 9 2015-05-12 16:35:46 +00:00
sigqueue.go runtime/cgo: make compatible with race detector 2015-07-22 20:28:47 +00:00
slice.go runtime: reduce slice growth during append to 2x 2015-06-26 17:49:33 +00:00
softfloat64_test.go [dev.cc] runtime: convert softfloat_arm.c to Go + build fixes 2014-11-11 22:30:02 -05:00
softfloat64.go runtime: slightly clean up softfloat code 2015-06-26 17:51:22 +00:00
softfloat_arm.go runtime: slightly clean up softfloat code 2015-06-26 17:51:22 +00:00
sqrt_test.go all: fix misprints in comments 2015-06-11 14:18:57 +00:00
sqrt.go runtime: fix software FP regs corruption when emulating SQRT on ARM 2015-05-05 07:32:58 +00:00
stack1.go runtime: fix out-of-bounds in stack debugging 2015-07-28 20:11:19 +00:00
stack2.go cmd/dist, runtime: Make stack guard larger for non-optimized builds 2015-05-01 15:41:55 +00:00
stack_test.go all: link to https instead of http 2015-07-11 14:36:33 +00:00
string1.go cmd/internal/gc: improve flow of input params to output params 2015-05-01 13:47:20 +00:00
string_test.go cmd/gc: don't copy string in range []byte(str) 2015-02-04 04:37:21 +00:00
string.go runtime: merge slice and sliceStruct 2015-04-15 16:59:49 +00:00
stubs2.go runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
stubs32.go cmd/compile: define func value symbols at declaration 2015-07-20 00:50:46 +00:00
stubs_android.go runtime: support panic/print logging in android-L. 2015-02-04 21:02:41 +00:00
stubs.go runtime: call goexit1 instead of goexit 2015-08-06 20:21:05 +00:00
symtab_test.go cmd/compile: initialize line number properly for temporaries 2015-07-07 21:30:59 +00:00
symtab.go runtime: make pcln table check not trigger next to foreign code 2015-07-23 14:14:22 +00:00
sys_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
sys_arm.go runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
sys_darwin_386.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_darwin_amd64.s runtime: signal forwarding for darwin/amd64 2015-04-26 13:46:13 +00:00
sys_darwin_arm64.s runtime: fix darwin/amd64 assembly frame sizes 2015-07-29 22:26:02 +00:00
sys_darwin_arm.s runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
sys_dragonfly_amd64.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_freebsd_386.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_freebsd_amd64.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_freebsd_arm.s runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
sys_linux_386.s runtime: set m.procid always on Linux 2015-06-24 21:50:39 +00:00
sys_linux_amd64.s runtime: if we don't handle a signal on a non-Go thread, raise it 2015-07-22 20:26:29 +00:00
sys_linux_arm64.s runtime, reflect: use correctly aligned stack frame sizes on arm64 2015-07-29 21:35:35 +00:00
sys_linux_arm.s runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
sys_linux_ppc64x.s runtime: set m.procid always on Linux 2015-06-24 21:50:39 +00:00
sys_nacl_386.s all: fix misprints in comments 2015-06-11 14:18:57 +00:00
sys_nacl_amd64p32.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_nacl_arm.s runtime: ensure GC sees type-safe memory on weak machines 2015-06-19 15:29:50 +00:00
sys_netbsd_386.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_netbsd_amd64.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_netbsd_arm.s runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
sys_openbsd_386.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_openbsd_amd64.s runtime: log all thread stack traces during GODEBUG=crash on Unix 2015-07-27 16:58:53 +00:00
sys_openbsd_arm.s runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
sys_plan9_386.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_plan9_amd64.s runtime: rename close to closefd 2015-04-14 12:31:29 +00:00
sys_ppc64x.go runtime: rename gothrow to throw 2014-12-28 06:16:16 +00:00
sys_solaris_amd64.s runtime: always load address of libcFunc on Solaris 2015-05-06 11:36:57 +00:00
sys_windows_386.s runtime: really pass return value to Windows in externalthreadhandler 2015-04-15 05:03:42 +00:00
sys_windows_amd64.s runtime: really pass return value to Windows in externalthreadhandler 2015-04-15 05:03:42 +00:00
sys_x86.go all: link to https instead of http 2015-07-11 14:36:33 +00:00
syscall2_solaris.go runtime, syscall: fix Solaris exec tests 2015-03-24 19:51:21 +00:00
syscall_nacl.h runtime, syscall: use the new get_random_bytes syscall for NaCl 2015-03-25 02:07:09 +00:00
syscall_solaris.go runtime: rename cgocall_errno and asmcgocall_errno into cgocall and asmcgocall 2015-06-19 01:47:11 +00:00
syscall_windows_test.go runtime: skip TestReturnAfterStackGrowInCallback if gcc is not found 2015-07-18 01:29:09 +00:00
syscall_windows.go runtime: store syscall parameters in m not on stack 2015-06-29 02:45:45 +00:00
textflag.h cmd/5l etc: replace C code with Go code 2015-03-01 00:40:11 +00:00
time.go runtime: remove runtime frames from stacks in traces 2015-03-10 14:46:15 +00:00
tls_arm64.h runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
tls_arm64.s runtime: darwin/arm64 support 2015-04-16 13:01:19 +00:00
tls_arm.s runtime: align stack pointer during initcgo call on arm 2015-08-05 05:31:34 +00:00
tls_ppc64x.s cmd/cgo, runtime/cgo: support ppc64 2015-01-07 20:36:27 +00:00
trace.go runtime/trace: record event sequence numbers explicitly 2015-07-29 22:32:14 +00:00
traceback.go runtime: implement GC stack barriers 2015-06-02 20:00:57 +00:00
type.go runtime: replace GC programs with simpler encoding, faster decoder 2015-05-16 00:38:17 +00:00
typekind1.go [dev.cc] runtime: convert header files to Go 2014-11-11 17:05:19 -05:00
typekind.go
unaligned1.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
unaligned2.go runtime: a better fallback hash 2014-12-22 22:41:01 +00:00
vdso_linux_amd64.go runtime: clean up & go-ify the hash function seeder 2014-12-10 21:15:35 +00:00
vdso_none.go runtime: use runtime.sysargs to parse auxv on linux/arm 2015-01-14 05:08:06 +00:00
vlop_386.s
vlop_arm_test.go runtime: replace divide with multiply in runtime.usleep on arm 2015-07-30 15:48:29 +00:00
vlop_arm.s runtime: change arm software div/mod call sequence not to modify stack 2015-07-30 16:14:05 +00:00
vlrt.go
wbfat_gen.go runtime: change unused argument in fat write barriers from pointer to scalar 2015-04-28 01:37:45 +00:00
wbfat.go runtime: change unused argument in fat write barriers from pointer to scalar 2015-04-28 01:37:45 +00:00
wincallback.go runtime: use go generate for zcallback_windows.go 2014-12-19 02:45:40 +00:00
zcallback_windows.go runtime: use go generate for zcallback_windows.go 2014-12-19 02:45:40 +00:00
zcallback_windows.s runtime: generate windows callback list with go generate 2014-12-05 16:24:20 -05:00
zgoarch_386.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoarch_amd64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoarch_amd64p32.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoarch_arm64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoarch_arm.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoarch_ppc64.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoarch_ppc64le.go runtime: add support for linux/arm64 2015-03-16 18:45:54 +00:00
zgoos_android.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_darwin.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_dragonfly.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_freebsd.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_linux.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_nacl.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_netbsd.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_openbsd.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_plan9.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_solaris.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00
zgoos_windows.go [dev.cc] runtime: explicitly exclude android in zgoos_linux.go 2014-11-21 18:13:59 -05:00