From: qydysky Date: Mon, 3 Aug 2020 06:38:17 +0000 (+0800) Subject: 29 X-Git-Tag: v0.0.2~59 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=a6881d360d89719639e28d3d2287700910536df0;p=part%2F.git 29 --- diff --git a/CheckFile.go b/CheckFile.go index ac34453..d8b27ed 100644 --- a/CheckFile.go +++ b/CheckFile.go @@ -122,13 +122,13 @@ func (this *checkfile) CheckList(checkFile,root,SplitString string)bool{ if strings.Contains(checkFile,"https://") { Logf().I("[wait]checkFile: Getting checkfile...") - var r = ReqfVal { + var r = Rval { Url:checkFile, Timeout:6, Retry:2, } - b,_,e:=Reqf(r) + b,_,e:=Req().Reqf(r) if e != nil { Logf().E("[err]checkFile:",checkFile,e.Error()) return false diff --git a/Reqf.go b/Reqf.go index 87f4f24..1bc4f01 100644 --- a/Reqf.go +++ b/Reqf.go @@ -1,6 +1,7 @@ package part import ( + "sync" "io" "os" "time" @@ -11,7 +12,7 @@ import ( "encoding/binary" ) -type ReqfVal struct { +type Rval struct { Url string Timeout int Referer string @@ -25,6 +26,14 @@ type ReqfVal struct { SaveToPath string } +type req struct { + sync.Mutex +} + +func Req() *req{ + return &req{} +} + // func main(){ // var _ReqfVal = ReqfVal{ // Url:url, @@ -35,25 +44,29 @@ type ReqfVal struct { // Reqf(_ReqfVal) // } -func Reqf(val ReqfVal) ([]byte,time.Duration,error) { +func (this *req) Reqf(val Rval) ([]byte,time.Duration,error) { + this.Lock() + defer this.Unlock() + var ( returnVal []byte returnTime time.Duration returnErr error ) - var _val ReqfVal = val; + _val := val; if _val.Timeout==0{_val.Timeout=3} for ;_val.Retry>=0;_val.Retry-- { - returnVal,returnTime,returnErr=Reqf_1(_val) + returnVal,returnTime,returnErr=this.Reqf_1(_val) if returnErr==nil {break} } return returnVal,returnTime,returnErr } -func Reqf_1(val ReqfVal) ([]byte,time.Duration,error){ +func (this *req) Reqf_1(val Rval) ([]byte,time.Duration,error){ + var ( Url string = val.Url Referer string = val.Referer