def METHOD_NAME(self, *args):
    # allow remove receiver during emitting
    for receiver in self.receivers.copy():
        try:
            if self._is_alive(receiver):
                if isinstance(receiver, weakref.ReferenceType):
                    func = receiver()
                else:
                    func = receiver
                uid = gen_id(func)
                aioqueue = uid in self.aioqueued_receiver_ids
                if aioqueue:
                    if Signal.has_aio_support:
                        Signal.aioqueue.sync_q.put_nowait((func, args))
                    else:
                        raise RuntimeError('Signal has no asyncio support.')
                else:
                    func(*args)
            else:
                logger.debug('receiver:{} is dead'.format(receiver))
        except Exception:
            logger.exception('receiver %s raise error' % receiver)