Futex hang when running event loop on a separated thread

Marc Aymerich glicerinu at gmail.com
Tue Nov 24 10:29:39 EST 2015


Hi,

I have to run the asyncio.loop on a separated thread because the main
thread is running FUSE. Apparently fuse needs to run on the main
thread because it uses signal():

....
File "/usr/local/lib/python3.4/dist-packages/fuse.py", line 390, in __init__
    old_handler = signal(SIGINT, SIG_DFL)
ValueError: signal only works in main thread


Anyway, when I exit the program it appears that i run into a deadlock
with the eventloop thread, strace is stuck with:

....
futex(0x7f7ba0000c10, FUTEX_WAIT_PRIVATE, 0, NULL


I've tried to stop the event loop from the main thread but the
situation is exactly the same :(

loop_container = {}
handler = threading.Thread(target=run_loop, args=(loop_container,))
try:
   handler.start()
   FUSE(fs)
finally:
    loop_container['loop'].stop()
    # handler.join()

Any idea on how I can shutdown the hole thing? I have to manually kill
the program each time :(

-- 
Marc



More information about the Python-list mailing list