using time.After instead of a separate goroutine
This commit is contained in:
		
							父節點
							
								
									5f581dd0e6
								
							
						
					
					
						當前提交
						624c61519f
					
				@ -235,17 +235,10 @@ func (client *Client) Do(funcname string, data []byte, flag byte) (handle string
 | 
			
		||||
    rel = append(rel, data...)                      // len(data)
 | 
			
		||||
    client.writeJob(newJob(common.REQ, datatype, rel))
 | 
			
		||||
    // Waiting for JOB_CREATED
 | 
			
		||||
    timeout := make(chan bool)
 | 
			
		||||
    defer close(timeout)
 | 
			
		||||
    go func() {
 | 
			
		||||
        defer common.DisablePanic()
 | 
			
		||||
        time.Sleep(client.TimeOut)
 | 
			
		||||
        timeout <- true
 | 
			
		||||
    }()
 | 
			
		||||
    select {
 | 
			
		||||
    case job := <-client.jobCreated:
 | 
			
		||||
        return string(job.Data), nil
 | 
			
		||||
    case <-timeout:
 | 
			
		||||
    case <-time.After(client.TimeOut):
 | 
			
		||||
        return "", common.ErrJobTimeOut
 | 
			
		||||
    }
 | 
			
		||||
    return
 | 
			
		||||
 | 
			
		||||
		載入中…
	
		新增問題並參考
	
	Block a user