import asyncio
async def cb(*args, **kwargs):
print('CB CALLED')
await asyncio.sleep(1)
print('CB END')
async def f():
print('F CALLED')
await asyncio.sleep(2)
print('F END')
async def test():
fut = asyncio.ensure_future(f())
fut.add_done_callback(lambda *args: asyncio.create_task(cb()))
await fut
await asyncio.sleep(2)
asyncio.run(test())
aW1wb3J0IGFzeW5jaW8KCgphc3luYyBkZWYgY2IoKmFyZ3MsICoqa3dhcmdzKToKICAgIHByaW50KCdDQiBDQUxMRUQnKQogICAgYXdhaXQgYXN5bmNpby5zbGVlcCgxKQogICAgcHJpbnQoJ0NCIEVORCcpCgoKYXN5bmMgZGVmIGYoKToKICAgIHByaW50KCdGIENBTExFRCcpCiAgICBhd2FpdCBhc3luY2lvLnNsZWVwKDIpCiAgICBwcmludCgnRiBFTkQnKQoKCmFzeW5jIGRlZiB0ZXN0KCk6CiAgICBmdXQgPSBhc3luY2lvLmVuc3VyZV9mdXR1cmUoZigpKQogICAgZnV0LmFkZF9kb25lX2NhbGxiYWNrKGxhbWJkYSAqYXJnczogYXN5bmNpby5jcmVhdGVfdGFzayhjYigpKSkKICAgIGF3YWl0IGZ1dAogICAgYXdhaXQgYXN5bmNpby5zbGVlcCgyKQoKCmFzeW5jaW8ucnVuKHRlc3QoKSk=