code: func (s *Subscription) Drain() error {
  	if s == nil {
  		return ErrBadSubscription
  	}
  	s.mu.Lock()
  	conn := s.conn
  	s.mu.Unlock()
  	if conn == nil {
  		return ErrBadSubscription
  	}
  	return conn.unsubscribe(s, 0, true)
  }
docs: // Drain will remove interest but continue callbacks until all messages
  // have been processed.