func (e *errNotifier) Notify(err error) error {
	// The code should never try to Notify(nil).
	if err == nil {
		panic("cannot Notify with no error")
	}

	// There may be some sort of race where we try to notify the mex twice.
	if !e.notified.CAS(false, true) {
		return fmt.Errorf("cannot broadcast error: %v, already have: %v", err, e.err)
	}

	e.err = err
	close(e.c)
	return nil
}
func (e *errNotifier) Notify(err error) error {
	
	if err == nil {
		panic("cannot Notify with no error")
	}

	
	if !e.notified.CAS(false, true) {
		return fmt.Errorf("cannot broadcast error: %v, already have: %v", err, e.err)
	}

	e.err = err
	close(e.c)
	return nil
}
func ( e * errNotifier ) Notify ( err error ) error { // The code should never try to Notify(nil). if err == nil { panic ( " " ) } // There may be some sort of race where we try to notify the mex twice. if ! e . notified . CAS ( false , true ) { return fmt . Errorf ( " " , err , e . err ) } e . err = err close ( e . c ) return nil }
// Notify will store the error and notify all waiters on c that there's an error.
Notify will store the error and notify all waiters on c that there s an error .