code: func (cc *clientConn) ShutdownOrNotify() bool {
  	if (cc.ctx.Status() & mysql.ServerStatusInTrans) > 0 {
  		return false
  	}
  	// If the client connection status is reading, it's safe to shutdown it.
  	if atomic.CompareAndSwapInt32(&cc.status, connStatusReading, connStatusShutdown) {
  		return true
  	}
  	// If the client connection status is dispatching, we can't shutdown it immediately,
  	// so set the status to WaitShutdown as a notification, the client will detect it
  	// and then exit.
  	atomic.StoreInt32(&cc.status, connStatusWaitShutdown)
  	return false
  }
docs: // ShutdownOrNotify will Shutdown this client connection, or do its best to notify.