func mapConcurrent(fn func(Observer), requestNotifiers []Observer) {
	var wg sync.WaitGroup
	wg.Add(len(requestNotifiers))
	defer wg.Wait()

	for _, n := range requestNotifiers {
		go func(notifier Observer) {
			defer wg.Done()
			fn(notifier)
		}(n)
	}
}
// mapConcurrent calls fn on all observers concurrently and then waits
// for all calls to exit before returning.
mapConcurrent calls fn on all observers concurrently and then waits
for all calls to exit before returning.
// mapConcurrent calls fn on all observers concurrently and then waits // for all calls to exit before returning .
func mapConcurrent(fn func(Observer), requestNotifiers []Observer) {
	var wg sync.WaitGroup
	wg.Add(len(requestNotifiers))
	defer wg.Wait()
	for _, n := range requestNotifiers {
		go func(notifier Observer) {
			defer wg.Done()
			fn(notifier)
		}(n)
	}
}
func mapConcurrent ( fn func ( Observer ) , requestNotifiers [ ] Observer ) { var wg sync . WaitGroup wg . Add ( len ( requestNotifiers ) ) defer wg . Wait ( ) for _ , n := range requestNotifiers { go func ( notifier Observer ) { defer wg . Done ( ) fn ( notifier ) } ( n ) } }
mapConcurrent calls fn on all observers concurrently and then waits
for all calls to exit before returning.
mapConcurrent calls fn on all observers concurrently and then waits for all calls to exit before returning .