package gobridge import ( "context" "fmt" "io" "net" "sync/atomic" ) // poolConfig 是进程池内部配置,通过 Option 函数填充 type poolConfig struct { workers int maxConnsPerWorker int pythonExe string scriptArgs []string workDir string env []string socketDir string stdout io.Writer stderr io.Writer } // Option 是 NewPool 的函数选项 type Option func(*poolConfig) // WithWorkers 设置 Python 进程数量(默认 2) func WithWorkers(n int) Option { return func(c *poolConfig) { c.workers = n } } // WithMaxConns 设置每个进程的最大连接数(默认 4) func WithMaxConns(n int) Option { return func(c *poolConfig) { c.maxConnsPerWorker = n } } // WithPythonExe 设置 Python 可执行文件(默认 "python3") // uv 模式:WithPythonExe("uv"), WithScriptArgs("run") func WithPythonExe(exe string) Option { return func(c *poolConfig) { c.pythonExe = exe } } // WithScriptArgs 设置脚本路径之后的附加参数 // uv 模式示例:WithScriptArgs("run") → 执行 uv run