def METHOD_NAME(loop, coro):
    if task_factory[0] is None:
        # These lines are copied from the standard library because they don't have
        # this inside a default factory function for me to call.
        # https://github.com/python/cpython/blob/3.6/Lib/asyncio/base_events.py#L304
        task = asyncio.Task(coro, loop=loop)
        if task._source_traceback:
            del task._source_traceback[-1]  # pragma: no cover
    else:
        task = task_factory[0](loop, coro)
    tasks.add(task)
    return task