f6be1179bb
Traceback routines, e.g. callers and funcentry, may call __go_get_backtrace_state. If a profiling signal arrives while we are in the critical section of __go_get_backtrace_state, it tries to do a traceback, which also calls __go_get_backtrace_state, which tries to enter the same critical section and will deadlock. Prevent this deadlock by setting up runtime_in_callers before calling __go_get_backtrace_state. Found while investigating golang/go#29448. Will add a test in the next CL. Updates golang/go#29448. Reviewed-on: https://go-review.googlesource.com/c/156037 From-SVN: r267590 |
||
---|---|---|
.. | ||
aeshash.c | ||
arch.h | ||
array.h | ||
defs.h | ||
env_posix.c | ||
getncpu-aix.c | ||
getncpu-bsd.c | ||
getncpu-irix.c | ||
getncpu-linux.c | ||
getncpu-none.c | ||
getncpu-solaris.c | ||
go-assert.c | ||
go-assert.h | ||
go-caller.c | ||
go-callers.c | ||
go-cdiv.c | ||
go-cgo.c | ||
go-construct-map.c | ||
go-ffi.c | ||
go-fieldtrack.c | ||
go-libmain.c | ||
go-main.c | ||
go-matherr.c | ||
go-memclr.c | ||
go-memcmp.c | ||
go-memequal.c | ||
go-memmove.c | ||
go-nanotime.c | ||
go-nosys.c | ||
go-now.c | ||
go-reflect-call.c | ||
go-runtime-error.c | ||
go-setenv.c | ||
go-signal.c | ||
go-string.h | ||
go-strslice.c | ||
go-type.h | ||
go-typedesc-equal.c | ||
go-unsafe-pointer.c | ||
go-unsetenv.c | ||
go-unwind.c | ||
go-varargs.c | ||
panic.c | ||
print.c | ||
proc.c | ||
rtems-task-variable-add.c | ||
runtime_c.c | ||
runtime.h | ||
stack.c | ||
thread.c | ||
yield.c |