История изменений
Исправление derlafff, (текущая версия) :
Я даже не знаю, что такое Gosched.
import asyncio
async def foo():
print('Starting foo')
await asyncio.sleep(5)
print('Foo finished')
async def bar():
print('Starting infinite loop')
while True:
pass
async def start():
tasks = [
foo(),
bar(),
]
await asyncio.wait(tasks)
loop = asyncio.get_event_loop()
loop.run_until_complete(start())
loop.close()
% python3 test.py :(
Starting foo
Starting infinite loop
Что нужно поставить в бесконечный цикл вместо pass, чтобы управление временно вернулось в ioloop и корутина foo выполнилась до конца? Это и есть gosched и бенчмарк страдает из-за той же проблемы. В go оно выполняется неявно при каждом вызове функции, поэтому проблема именно в том бенчмарке не проявляется.
Исправление derlafff, :
Я даже не знаю, что такое Gosched.
import asyncio
async def foo():
print('Starting foo')
await asyncio.sleep(5)
print('Foo finished')
async def bar():
print('Starting infinite loop')
while True:
pass
async def start():
tasks = [
foo(),
bar(),
]
await asyncio.wait(tasks)
loop = asyncio.get_event_loop()
loop.run_until_complete(start())
loop.close()
% python3 test.py :(
Starting foo
Starting infinite loop
Что нужно поставить в бесконечный цикл вместо pass, чтобы управление временно вернулось в ioloop и корутина foo выполнилась до конца? Это и есть gosched и бенчмарк страдает из-за той же проблемы. В go оно выполняется неявно при каждом вызове функции, поэтому проблемы там не заметно.
Исходная версия derlafff, :
Я даже не знаю, что такое Gosched.
import asyncio
async def foo():
print('Starting foo')
await asyncio.sleep(5)
print('Foo finished')
async def bar():
print('Starting infinite loop')
while True:
pass
async def start():
tasks = [
foo(),
bar(),
]
await asyncio.wait(tasks)
loop = asyncio.get_event_loop()
loop.run_until_complete(start())
loop.close()
% python3 test.py :(
Starting foo
Starting infinite loop
Что нужно поставить в бесконечный цикл вместо pass, чтобы управление временно вернулось в ioloop и корутина foo выполнилась до конца? Это и есть gosched и бенчмарк страдает из-за той же проблемы.