func (s *listener) Close() error {
	if err := s.Listener.Close(); err != nil {
		return err
	}

	s.cond.L.Lock()
	for s.refs > 0 {
		s.cond.Wait()
	}
	s.cond.L.Unlock()
	return nil
}
func (s *listener) Close() error {
	if err := s.Listener.Close(); err != nil {
		return err
	}

	s.cond.L.Lock()
	for s.refs > 0 {
		s.cond.Wait()
	}
	s.cond.L.Unlock()
	return nil
}
func ( s * listener ) Close ( ) error { if err := s . Listener . Close ( ) ; err != nil { return err } s . cond . L . Lock ( ) for s . refs > 0 { s . cond . Wait ( ) } s . cond . L . Unlock ( ) return nil }
// Close closes the listener.
// Any blocked Accept operations will be unblocked and return errors.
Close closes the listener . Any blocked Accept operations will be unblocked and return errors .