'Create a new signal.
providing_args
A list of the arguments this signal can pass along in a send() call.'

def __init__(self, providing_args=None):

    self.receivers = []
    if (providing_args is None):
        providing_args = []
    self.providing_args = set(providing_args)
    self.lock = threading.Lock()
