code: func (c *asyncConnHdl) QueueRequest(cmd *Command, args [][]byte) (pending *PendingResponse, err Error) {
  
  	defer func() {
  		if re := recover(); re != nil {
  			// REVU - needs to be logged - TODO
  			err = newSystemErrorWithCause("QueueRequest", re.(error))
  		}
  	}()
  
  	if c.isShutdown {
  		panic(fmt.Errorf("Connection %s is alredy shutdown", c.String()))
  	}
  	select {
  	case <-c.shutdown:
  		c.isShutdown = true
  		c.shutdown <- true // put it back REVU likely to be a bug under heavy load ..
  		panic(fmt.Errorf("Connection %s is alredy shutdown", c.String()))
  	default:
  	}
  
  	buff := CreateRequestBytes(cmd, args) // panics
  	future := CreateFuture(cmd)
  	request := &asyncRequestInfo{0, 0, cmd, &buff, future, nil}
  
  	c.pendingReqs <- request
  
  	pending = &PendingResponse{future}
  
  	return
  }
docs: // ----------------------------------------------------------------------------
  // asyncConnHdl support for AsyncConnection interface
  // ----------------------------------------------------------------------------