aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/cpuprof.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/cpuprof.go')
-rw-r--r--src/runtime/cpuprof.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/runtime/cpuprof.go b/src/runtime/cpuprof.go
index 6ef374eaa4..0d7eeacb39 100644
--- a/src/runtime/cpuprof.go
+++ b/src/runtime/cpuprof.go
@@ -227,7 +227,11 @@ func runtime_pprof_readProfile() ([]uint64, []unsafe.Pointer, bool) {
lock(&cpuprof.lock)
log := cpuprof.log
unlock(&cpuprof.lock)
- data, tags, eof := log.read(profBufBlocking)
+ readMode := profBufBlocking
+ if GOOS == "darwin" || GOOS == "ios" {
+ readMode = profBufNonBlocking // For #61768; on Darwin notes are not async-signal-safe. See sigNoteSetup in os_darwin.go.
+ }
+ data, tags, eof := log.read(readMode)
if len(data) == 0 && eof {
lock(&cpuprof.lock)
cpuprof.log = nil