forked from yuxh/gearman-go
		
	Remove lastcall.
This commit is contained in:
		
							parent
							
								
									5c665de2d6
								
							
						
					
					
						commit
						f2f0349d2d
					
				@ -18,12 +18,12 @@ var (
 | 
				
			|||||||
type Client struct {
 | 
					type Client struct {
 | 
				
			||||||
	sync.Mutex
 | 
						sync.Mutex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	net, addr, lastcall string
 | 
						net, addr    string
 | 
				
			||||||
	respHandler         *responseHandlerMap
 | 
						respHandler  *responseHandlerMap
 | 
				
			||||||
	innerHandler        *responseHandlerMap
 | 
						innerHandler *responseHandlerMap
 | 
				
			||||||
	in                  chan *Response
 | 
						in           chan *Response
 | 
				
			||||||
	conn                net.Conn
 | 
						conn         net.Conn
 | 
				
			||||||
	rw                  *bufio.ReadWriter
 | 
						rw           *bufio.ReadWriter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ResponseTimeout time.Duration // response timeout for do() in ms
 | 
						ResponseTimeout time.Duration // response timeout for do() in ms
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -171,12 +171,7 @@ func (client *Client) processLoop() {
 | 
				
			|||||||
	for resp := range client.in {
 | 
						for resp := range client.in {
 | 
				
			||||||
		switch resp.DataType {
 | 
							switch resp.DataType {
 | 
				
			||||||
		case dtError:
 | 
							case dtError:
 | 
				
			||||||
			if client.lastcall != "" {
 | 
								client.err(getError(resp.Data))
 | 
				
			||||||
				resp = client.handleInner(client.lastcall, resp)
 | 
					 | 
				
			||||||
				client.lastcall = ""
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				client.err(getError(resp.Data))
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		case dtStatusRes:
 | 
							case dtStatusRes:
 | 
				
			||||||
			resp = client.handleInner("s"+resp.Handle, resp)
 | 
								resp = client.handleInner("s"+resp.Handle, resp)
 | 
				
			||||||
		case dtJobCreated:
 | 
							case dtJobCreated:
 | 
				
			||||||
@ -228,7 +223,6 @@ func (client *Client) do(funcname string, data []byte,
 | 
				
			|||||||
	var result = make(chan handleOrError, 1)
 | 
						var result = make(chan handleOrError, 1)
 | 
				
			||||||
	client.Lock()
 | 
						client.Lock()
 | 
				
			||||||
	defer client.Unlock()
 | 
						defer client.Unlock()
 | 
				
			||||||
	client.lastcall = "c"
 | 
					 | 
				
			||||||
	client.innerHandler.put("c", func(resp *Response) {
 | 
						client.innerHandler.put("c", func(resp *Response) {
 | 
				
			||||||
		if resp.DataType == dtError {
 | 
							if resp.DataType == dtError {
 | 
				
			||||||
			err = getError(resp.Data)
 | 
								err = getError(resp.Data)
 | 
				
			||||||
@ -243,7 +237,6 @@ func (client *Client) do(funcname string, data []byte,
 | 
				
			|||||||
	req.DataType = flag
 | 
						req.DataType = flag
 | 
				
			||||||
	if err = client.write(req); err != nil {
 | 
						if err = client.write(req); err != nil {
 | 
				
			||||||
		client.innerHandler.remove("c")
 | 
							client.innerHandler.remove("c")
 | 
				
			||||||
		client.lastcall = ""
 | 
					 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var timer = time.After(client.ResponseTimeout * time.Millisecond)
 | 
						var timer = time.After(client.ResponseTimeout * time.Millisecond)
 | 
				
			||||||
@ -252,7 +245,6 @@ func (client *Client) do(funcname string, data []byte,
 | 
				
			|||||||
		return ret.handle, ret.err
 | 
							return ret.handle, ret.err
 | 
				
			||||||
	case <-timer:
 | 
						case <-timer:
 | 
				
			||||||
		client.innerHandler.remove("c")
 | 
							client.innerHandler.remove("c")
 | 
				
			||||||
		client.lastcall = ""
 | 
					 | 
				
			||||||
		return "", ErrLostConn
 | 
							return "", ErrLostConn
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
@ -308,7 +300,6 @@ func (client *Client) Status(handle string) (status *Status, err error) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	var mutex sync.Mutex
 | 
						var mutex sync.Mutex
 | 
				
			||||||
	mutex.Lock()
 | 
						mutex.Lock()
 | 
				
			||||||
	client.lastcall = "s" + handle
 | 
					 | 
				
			||||||
	client.innerHandler.put("s"+handle, func(resp *Response) {
 | 
						client.innerHandler.put("s"+handle, func(resp *Response) {
 | 
				
			||||||
		defer mutex.Unlock()
 | 
							defer mutex.Unlock()
 | 
				
			||||||
		var err error
 | 
							var err error
 | 
				
			||||||
@ -339,7 +330,6 @@ func (client *Client) Echo(data []byte) (echo []byte, err error) {
 | 
				
			|||||||
	req := getRequest()
 | 
						req := getRequest()
 | 
				
			||||||
	req.DataType = dtEchoReq
 | 
						req.DataType = dtEchoReq
 | 
				
			||||||
	req.Data = data
 | 
						req.Data = data
 | 
				
			||||||
	client.lastcall = "e"
 | 
					 | 
				
			||||||
	client.write(req)
 | 
						client.write(req)
 | 
				
			||||||
	mutex.Lock()
 | 
						mutex.Lock()
 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user