Run an array of coroutines

    :param corogen: a generator that generates coroutines
    :return: list or returns of the coroutines

async def runall(corogen):
    """
    Run an array of coroutines

    :param corogen: a generator that generates coroutines
    :return: list or returns of the coroutines
    """
    results = []
    for c in corogen:
        result = await c
        results.append(result)
    return results