Files
MyGoNavi/internal/nativewindow/parent_lifecycle_other.go
Syngnat b80989cb7b 🐛 fix(nativewindow): 修复主进程退出后子窗口残留
- 启动独立窗口时传递并校验主进程 PID
- 按平台监控父进程并在其退出后关闭子窗口
- 补充 PID 解析、真实父进程退出和异常探测回归测试
2026-07-27 08:43:12 +08:00

28 lines
542 B
Go

//go:build !darwin && !linux && !windows
package nativewindow
import (
"fmt"
"os"
)
type genericDetachedParentWatcher struct {
pid int
}
func newDetachedParentWatcher(pid int) (detachedParentWatcher, error) {
if pid <= 1 {
return nil, fmt.Errorf("invalid detached parent process ID: %d", pid)
}
return &genericDetachedParentWatcher{pid: pid}, nil
}
func (w *genericDetachedParentWatcher) Alive() (bool, error) {
return w != nil && os.Getppid() == w.pid, nil
}
func (*genericDetachedParentWatcher) Close() error {
return nil
}