// Copyright 2023 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

//go:build unix && !android && !openbsd

package main

/*
void callStackSwitchCallbackFromThread(void);
*/
import "C"

import (
	"fmt"
	"runtime/debug"
)

func init() {
	register("StackSwitchCallback", StackSwitchCallback)
}

//export stackSwitchCallback
func stackSwitchCallback() {
	// We want to trigger a bounds check on the g0 stack. To do this, we
	// need to call a splittable function through systemstack().
	// SetGCPercent contains such a systemstack call.
	gogc := debug.SetGCPercent(100)
	debug.SetGCPercent(gogc)
}

// Regression test for https://go.dev/issue/62440. It should be possible for C
// threads to call into Go from different stacks without crashing due to g0
// stack bounds checks.
//
// N.B. This is only OK for threads created in C. Threads with Go frames up the
// stack must not change the stack out from under us.
func StackSwitchCallback() {
	C.callStackSwitchCallbackFromThread()

	fmt.Printf("OK\n")
}
