\
        Opens the given asynchronous contest manager on the event loop.
        For a context manager that would be called like this::

            async with ctx as value:
                body

        This method allows a call like this::

            with event_loop_thread.context(ctx) as value:
                body

        The asynchronous work of the context manager is run on the dedicated thread.

def context(self, async_context):
        """\
        Opens the given asynchronous contest manager on the event loop.
        For a context manager that would be called like this::

            async with ctx as value:
                body

        This method allows a call like this::

            with event_loop_thread.context(ctx) as value:
                body

        The asynchronous work of the context manager is run on the dedicated thread.
        """

        exit = type(async_context).__aexit__
        value = self.run_coroutine(type(async_context).__aenter__(async_context)).result()
        exc = True
        try:
            try:
                yield value
            except:
                exc = False
                if not self.run_coroutine(exit(async_context, *sys.exc_info())).result():
                    raise
        finally:
            if exc:
                self.run_coroutine(exit(async_context, None, None, None)).result()