code: func (e *Engine) Handle(conn transport.Conn) bool {
  	// check conn
  	if conn == nil {
  		panic("passed conn is nil")
  	}
  
  	// acquire mutex
  	e.mutex.Lock()
  	defer e.mutex.Unlock()
  
  	// close conn immediately when dying
  	if !e.tomb.Alive() {
  		_ = conn.Close()
  		return false
  	}
  
  	// set default read limit
  	conn.SetReadLimit(e.DefaultReadLimit)
  
  	// set initial read timeout
  	conn.SetReadTimeout(e.ConnectTimeout)
  
  	// handle client
  	NewClient(e.Backend, conn)
  
  	return true
  }
docs: // Handle takes over responsibility and handles a transport.Conn. It returns
  // false if the engine is closing and the connection has been closed.