Skip to content

是否 goroutine 安全? #21

@greensea

Description

@greensea

同时在多个 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/goz@v1.0.0/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 中说明,以便用户自己做并发控制

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions