parameters: (coroutine)
return_statement: return CORO_SUSPENDED
docstring: Get current state of a coroutine object.
  
      Possible states are:
        CORO_CREATED: Waiting to start execution.
        CORO_RUNNING: Currently being executed by the interpreter.
        CORO_SUSPENDED: Currently suspended at an await expression.
        CORO_CLOSED: Execution has completed.
docstring_summary: Get current state of a coroutine object.
docstring_tokens: Get current state of a coroutine object .
function: def getcoroutinestate(coroutine):
      """Get current state of a coroutine object.
  
      Possible states are:
        CORO_CREATED: Waiting to start execution.
        CORO_RUNNING: Currently being executed by the interpreter.
        CORO_SUSPENDED: Currently suspended at an await expression.
        CORO_CLOSED: Execution has completed.
      """
      if coroutine.cr_running:
          return CORO_RUNNING
      if coroutine.cr_frame is None:
          return CORO_CLOSED
      if coroutine.cr_frame.f_lasti == -1:
          return CORO_CREATED
      return CORO_SUSPENDED
function_tokens: def getcoroutinestate ( coroutine ) : if coroutine . cr_running : return CORO_RUNNING if coroutine . cr_frame is None : return CORO_CLOSED if coroutine . cr_frame . f_lasti == - 1 : return CORO_CREATED return CORO_SUSPENDED