sub.go
func (s *sub) Close() error {
	go func() {
		for _, c := range s.channels {
			c.unsubscribe <- s
		}
	}()
	go func() {
		s.closed <- true
		close(s.send)
	}()
	return nil
}
func (s *sub) Close() error {
	go func() {
		for _, c := range s.channels {
			c.unsubscribe <- s
		}
	}()
	go func() {
		s.closed <- true
		close(s.send)
	}()
	return nil
}
// Close removes subscriber from channel.