Skip to content

Comments

修复cmd/socks启动WaitGroup等待失败问题。#40

Merged
shimmeris merged 1 commit intoshimmeris:mainfrom
LanXuage:fix-socks_waitgroup_invalid
Mar 1, 2023
Merged

修复cmd/socks启动WaitGroup等待失败问题。#40
shimmeris merged 1 commit intoshimmeris:mainfrom
LanXuage:fix-socks_waitgroup_invalid

Conversation

@LanXuage
Copy link
Contributor

@LanXuage LanXuage commented Mar 1, 2023

问题

使用SCFProxy进行socks代理时,偶然发现,cmd/socks在执行时,主进程创建WaitGroup并启动一个协程后,可能发生主进程的wg.wait()比协程的wg.add(1)先执行的情况,造成协程跟随主进程提前结束的情况,协程后面的监听服务也未开始执行。

修复

将wg.add(1)放在协程外面wg.wait()前执行。

…y termination of the main process before the coordination process executes wg.add(1).
@LanXuage
Copy link
Contributor Author

LanXuage commented Mar 1, 2023

复现

在文件cmd/socks.go中的协程函数中增加睡眠延迟,如下

		go func() {
			time.Sleep(2 * 1000 * time.Millisecond) // 虚拟延迟
			wg.Add(1)
			defer wg.Done()
			socks.Serve(lp, sp, key)
		}()

重新运行,没有任何输出就结束了。

go run main.go socks -l 10808 -s 10809 -h 192.168.1.123

@shimmeris
Copy link
Owner

感谢

@shimmeris shimmeris merged commit ec957b8 into shimmeris:main Mar 1, 2023
power12317 pushed a commit to power12317/SCFProxy that referenced this pull request Jan 15, 2026
…alid

修复cmd/socks启动WaitGroup等待失败问题。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants