def next_message(self):
        if self._is_running:
            raise Exception('Event loop already running')
        if self._pending_messages:
            return self._pending_messages.popleft()
        self._async_session.run(self._enqueue_request_and_stop,
                                self._enqueue_notification_and_stop)
        if self._pending_messages:
            return self._pending_messages.popleft()
Performs a pickle loads on the given string, substituting the given
dataset/ETHPy150Open neovim/python-client/neovim/msgpack_rpc/session.py/Session.next_message--crossover with--dataset/ETHPy150Open quantopian/zipline/zipline/utils/serialization_utils.py/loads_with_persistent_ids