code: def _notify(self, func, *args, **kw):
          
          for x in self.listeners:
              try:
                  getattr(x, func)(*args, **kw)
              except Exception:
                  log.err()
docs: Internal helper. Calls the IStreamListener function 'func' with
          the given args, guarding around errors.