goz icon indicating copy to clipboard operation
goz copied to clipboard

是否 goroutine 安全?

Open greensea opened this issue 4 years ago • 0 comments

同时在多个 goroutine 中使用 goz 下载文件时,会发生段错误

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x67d7b9]

goroutine 20255 [running]:
github.com/idoubi/goz.(*Response).GetBody(0xc012042a60, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/gs/go/pkg/mod/github.com/idoubi/[email protected]/response.go:46 +0x59
main.DownloadFile(0xc011180240, 0x3d, 0xc010990740, 0x34, 0x2)
	/home/gs/face/douban/douban.go:403 +0x35a
main.DownloadPhotos.func1(0xc011180240, 0x3d, 0xc0119fe240, 0xc00b104000)
	/home/gs/face/douban/douban.go:86 +0x12b
created by main.DownloadPhotos
	/home/gs/face/douban/douban.go:83 +0x433

douban.go:403 行的代码是

body, err := response.GetBody()

也就是在调用 GetBody() 的时候会出错

所以 goz 是 goroutine 安全的吗?如果不是的话还建议在 README 中说明,以便用户自己做并发控制

greensea avatar Jan 27 '21 13:01 greensea