【发布时间】:2017-10-11 03:45:15
【问题描述】:
我想尝试在 Go 中打开一个超时的 PE 文件。为此,我在引导文件指针和错误时使用匿名函数。我使用带有超时情况的 select 子句来强制执行超时,如下所示。
go func() {
f, e := pe.Open(filePath)
file <- f
err <- e
}()
select {
case <-fileOpenTimeout:
fmt.Printf("ERROR: Opening PE file timed out")
return
case fileError := <-err:
if fileError == nil{...}
}
此代码适用于我的用例。但是,如果文件打开时间过长,这可能会导致资源泄漏。我怎样才能防止这种情况?有没有更好的方法来强制打开 PE 文件超时?
【问题讨论】:
标签: go timeout portable-executable goroutine