<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

async def send(self, sender, **kwargs):
        ''' send a signal from the sender to all connected receivers '''
        if not self.receivers:
            return []
        responses = []
        futures = []
        for receiver in self._get_receivers(sender):
            method = receiver()
            if callable(method):
                futures.append(method(sender=sender, **kwargs))
        if len(futures) > 0:
            responses = await asyncio.gather(*futures)
        return responses