'Wakes all threads waiting on a signal event.
Args:
signal: The MidiSignal to wake threads waiting on, or None to wake all.'

@concurrency.serialized
def wake_signal_waiters(self, signal=None):

    for regex in list(self._signals):
        if ((signal is None) or (regex.pattern == str(signal))):
            self._signals[regex].notify_all()
            del self._signals[regex]
    for captor in self._captors:
        captor.wake_signal_waiters(signal)
