import asyncio import aiohttp import requests counter = 0 class Flag: def __init__(self): self.flag = False big_file_url = "https://reutersinstitute.politics.ox.ac.uk/sites/default/files/2023-06/Digital_News_Report_2023.pdf" async def async_req(): async with aiohttp.ClientSession() as session: async with session.get(big_file_url) as response: print("!!!!!", response.status) def block_req(): resp = requests.get(big_file_url) print("!!!!!!", resp.status_code) async def tick(flag: Flag): while not flag.flag: global counter counter += 1 print("tick", counter) await asyncio.sleep(0.1) async def main(): flag = Flag() task = asyncio.create_task(tick(flag)) await asyncio.sleep(1) block_req() # await async_req() print("awake") await asyncio.sleep(1) print("set flag") flag.flag = True await task asyncio.run(main())