悬赏 3000 能量求助,关于 golang 在 windows 下的中断信号处理问题
入口文件:https://github.com/runoneall/tinyagent/blob/main/main.go
我在 main.go 中用自封装的一个 threadmgr 来启动 mainAgent,随后通过 Wait 方法等待所有 thread 退出
Wait 实现如下所示
package threadmgr
import (
"os"
"os/signal"
)
func Wait() {
sigInterrupt := make(chan os.Signal, 1)
signal.Notify(sigInterrupt, os.Interrupt)
<-sigInterrupt
go func() {
for range sigInterrupt {
}
}()
cancel()
wg.Wait()
}
目前有一个问题,当我在 Agent 执行中按下 Ctrl+C,context 确实被取消了,wg.Wait() 也确实执行了,但我按下 Ctrl+C 的那一瞬间,shell 控制权就被交还了(shell prompt 出现),导致 wg.Wait() 是在后台等待的,我想让其在前台等待,也就是 threadmgr.Wait() 执行完成后,才交还控制权
求助各位大佬,求解答
