def signal(self, name, doc=None):
        """Return the :class:`NamedSignal` *name*, creating it if required."""
        lock = self.lock
        lock.acquire()
        try:
            return self.signals[name]
        except __HOLE__:
            self.signals[name] = instance = self.signal_factory(name, doc)
            return instance
        finally:
            lock.release()
dataset/ETHPy150Open jek/flatland/flatland/util/signals.py/Namespace.signal