def add_bus(self, bus):
        """Add a bus for notification.

        :param can.BusABC bus:
            CAN bus instance.
        """
        if self._loop is not None and hasattr(bus, 'fileno') and bus.fileno() >= 0:
            # Use file descriptor to watch for messages
            reader = bus.fileno()
            self._loop.add_reader(reader, self._on_message_available, bus)
        else:
            reader = threading.Thread(target=self._rx_thread, args=(bus,),
                name='can.notifier for bus "{}"'.format(bus.channel_info))
            reader.daemon = True
            reader.start()
        self._readers.append(reader)
Add a bus for notification.

        :param can.BusABC bus:
            CAN bus instance.