code: func (c *connectionTracker) Shutdown(ctx context.Context) error {
  	ticker := time.NewTicker(500 * time.Millisecond)
  	defer ticker.Stop()
  	for {
  		if c.isEmpty() {
  			return nil
  		}
  		select {
  		case <-ctx.Done():
  			return ctx.Err()
  		case <-ticker.C:
  		}
  	}
  }
docs: // Shutdown wait for the connection closing