// 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.
// Close closes the listener . // Any blocked Accept operations will be unblocked and return errors .
func (l *PipeListener) Close() (e error) {
	if atomic.LoadUint32(&l.done) == 0 {
		l.m.Lock()
		defer l.m.Unlock()
		if l.done == 0 {
			defer atomic.StoreUint32(&l.done, 1)
			close(l.close)
			return
		}
	}
	e = ErrListenerClosed
	return
}
func ( l * PipeListener ) Close ( ) ( e error ) { if atomic . LoadUint32 ( & l . done ) == 0 { l . m . Lock ( ) defer l . m . Unlock ( ) if l . done == 0 { defer atomic . StoreUint32 ( & l . done , 1 ) close ( l . close ) return } } e = ErrListenerClosed return }
Close closes the listener.
Close closes the listener .