class_docstr: Internal implementation of `tornado.gen.coroutine`.
  
  Maintains information about pending callbacks and their results.
  
  The results of the generator are stored in ``result_future`` (a
  `.Future`)
class_docstr_tok: ["Internal","implementation","of","`","tornado.gen.coroutine","`",".","Maintains","information","about","pending","callbacks","and","their","results",".","The","results","of","the","generator","are","stored","in","``","result_future","``","(","a","`",".Future","`",")"]
code: def __init__(
      self,
      ctx_run: Callable,
      gen: "Generator[_Yieldable, Any, _T]",
      result_future: "Future[_T]",
      first_yielded: _Yieldable,
  ) -> None:
      self.ctx_run = ctx_run
      self.gen = gen
      self.result_future = result_future
      self.future = _null_future  # type: Union[None, Future]
      self.running = False
      self.finished = False
      self.io_loop = IOLoop.current()
      if self.ctx_run(self.handle_yield, first_yielded):
          gen = result_future = first_yielded = None  # type: ignore
          self.ctx_run(self.run)
  
imports: import asyncio
  import builtins
  import collections
  from collections.abc import Generator
  import concurrent.futures
  import datetime
  import functools
  from functools import singledispatch
  from inspect import isawaitable
  import sys
  import types
  from tornado.concurrent import Future, is_future, chain_future, future_set_exc_info, future_add_done_callback, future_set_result_unless_cancelled
  from tornado.ioloop import IOLoop
  from tornado.log import app_log
  from tornado.util import TimeoutError
  import typing
  from typing import Union, Any, Callable, List, Type, Tuple, Awaitable, Dict, overload
label_desc: Use image node_id 1 to create a new Runner object from inherited base classes: object with example: obj = Runner(ctx_run, gen, result_future, first_yielded)