Hi Victor,

If i use asyncio.sleep instead of create_subprocess_shell, it works find 
even though i have two event loops. There are no errors; the only warning i 
get is about the task taking too long (slow_callback_duration is 0.1 while 
my task takes 2 seconds so the warning is expected).

Here's the program (with two event loops) that works

----------------------------------------------------
import asyncio
import logging

async def sleepWithAsyncio(loop=None):
    await asyncio.sleep(2, loop=loop)
    return True

def sleepWithNewLoop():
    loop = asyncio.new_event_loop()
    result = loop.run_until_complete(sleepWithAsyncio(loop))
    loop.close()
    return result
  
async def sleepWithMainLoopAndNewLoop():
    result = await sleepWithAsyncio()
    print("sleep with asyncio in main loop ", result)
    result = sleepWithNewLoop()
    print("sleep with asyncio in new 'nested' loop ", result)
    return result

def main():
    logging.basicConfig(level=logging.DEBUG)
    
asyncio.get_event_loop().run_until_complete(sleepWithMainLoopAndNewLoop())
    asyncio.get_event_loop().close()
  
if __name__ == "__main__":
    main()

-----------------------------------------------------


Thanks,
Chetan


On Monday, August 10, 2015 at 5:52:39 AM UTC-4, Victor Stinner wrote:
>
> To me it looks wrong to have two event loops per thread. You must get an 
> error, at least in debug mode.
>
> What do you want to do?
>
> Victor
>

Reply via email to