Skip to content

Commit

Permalink
runtime/debug: eliminate temporary variadicity from SetCrashOutput
Browse files Browse the repository at this point in the history
Updates #67182

Change-Id: I33fc8c515f4a9d120262ba30f61aea80ede5e9f8
Reviewed-on: https://go-review.googlesource.com/c/go/+/585420
LUCI-TryBot-Result: Go LUCI <[email protected]>
Reviewed-by: Austin Clements <[email protected]>
  • Loading branch information
adonovan committed May 16, 2024
1 parent 6cd066f commit a22cb5c
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 12 deletions.
2 changes: 1 addition & 1 deletion api/next/42888.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
pkg runtime/debug, type CrashOptions struct #67182
pkg runtime/debug, func SetCrashOutput(*os.File, ...CrashOptions) error #42888
pkg runtime/debug, func SetCrashOutput(*os.File, CrashOptions) error #42888
2 changes: 1 addition & 1 deletion src/runtime/debug/example_monitor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ func monitor() {
if err != nil {
log.Fatalf("StdinPipe: %v", err)
}
debug.SetCrashOutput(pipe.(*os.File)) // (this conversion is safe)
debug.SetCrashOutput(pipe.(*os.File), debug.CrashOptions{}) // (this conversion is safe)
if err := cmd.Start(); err != nil {
log.Fatalf("can't start monitor: %v", err)
}
Expand Down
9 changes: 1 addition & 8 deletions src/runtime/debug/stack.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,7 @@ type CrashOptions struct {
// To disable this additional crash output, call SetCrashOutput(nil).
// If called concurrently with a crash, some in-progress output may be written
// to the old file even after an overriding SetCrashOutput returns.
//
// TODO(adonovan): the variadic ... is a short-term measure to avoid
// breaking the call in x/telemetry; it will be removed before the
// go1.23 freeze.
func SetCrashOutput(f *os.File, opts ...CrashOptions) error {
if len(opts) > 1 {
panic("supply at most 1 CrashOptions")
}
func SetCrashOutput(f *os.File, opts CrashOptions) error {
fd := ^uintptr(0)
if f != nil {
// The runtime will write to this file descriptor from
Expand Down
3 changes: 2 additions & 1 deletion src/runtime/debug/stack_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"os/exec"
"path/filepath"
"runtime"
"runtime/debug"
. "runtime/debug"
"strings"
"testing"
Expand All @@ -29,7 +30,7 @@ func TestMain(m *testing.M) {
if err != nil {
log.Fatal(err)
}
if err := SetCrashOutput(f); err != nil {
if err := SetCrashOutput(f, debug.CrashOptions{}); err != nil {
log.Fatal(err) // e.g. EMFILE
}
println("hello")
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/traceback_system_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func crash() {
// Ensure that we get pc=0x%x values in the traceback.
debug.SetTraceback("system")
writeSentinel(os.Stdout)
debug.SetCrashOutput(os.Stdout)
debug.SetCrashOutput(os.Stdout, debug.CrashOptions{})

go func() {
// This call is typically inlined.
Expand Down

0 comments on commit a22cb5c

Please sign in to comment.