]> 127.0.0.1 Git - part/.git/commitdiff
29
authorqydysky <qydysky@foxmail.com>
Mon, 3 Aug 2020 06:38:17 +0000 (14:38 +0800)
committerqydysky <qydysky@foxmail.com>
Mon, 3 Aug 2020 06:38:17 +0000 (14:38 +0800)
CheckFile.go
Reqf.go

index ac344536fcc2f410dcd04738e4bd8410d25a7d90..d8b27ed908f42c04b145cc544dd2eaa2fe17b38a 100644 (file)
@@ -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 87f4f24f57c04de3ed339b4ca0a796e9bd5137d2..1bc4f0186af14b91b3ae8b350c116ace484c8eb0 100644 (file)
--- 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