'Create a \'join\' of this :class:`._Dispatch` and another.
This new dispatcher will dispatch events to both
:class:`._Dispatch` objects.'

def _join(self, other):

    if ('_joined_dispatch_cls' not in self.__class__.__dict__):
        cls = type(('Joined%s' % self.__class__.__name__), (_JoinedDispatcher, self.__class__), {})
        for ls in _event_descriptors(self):
            setattr(cls, ls.name, _JoinedDispatchDescriptor(ls.name))
        self.__class__._joined_dispatch_cls = cls
    return self._joined_dispatch_cls(self, other)
