Appends a packet to the internal read queue, or notifies
        a waiting listener that a packet just came in.

def _push_packet(self, packet):
        """
        Appends a packet to the internal read queue, or notifies
        a waiting listener that a packet just came in.
        """
        self._read_queue.append((decode(packet), packet))

        if self._read_waiter is not None:
            w, self._read_waiter = self._read_waiter, None
            w.set_result(None)