Futex hang when running event loop on a separated thread
Marc Aymerich
glicerinu at gmail.com
Tue Nov 24 13:37:35 EST 2015
On Tue, Nov 24, 2015 at 7:11 PM, Zachary Ware
<zachary.ware+pylist at gmail.com> wrote:
> On Tue, Nov 24, 2015 at 9:46 AM, Marc Aymerich <glicerinu at gmail.com> wrote:
>> if __name__ == '__main__':
>> loop_container = {}
>> handler = threading.Thread(target=run_loop, args=(loop_container, ))
>> handler.start()
>> try:
>> time.sleep(10000)
>> finally:
>> loop_container['loop'].stop()
>
> loop.stop() must be called from the thread running the loop. You can
> do this by doing
> `loop_container['loop'].call_soon_threadsafe(loop_container['loop'].stop)`
> from the main thread (untested).
>
Hi Zachary,
nice to know about call_soon_threadsafe!
still it appears to work only if the main thread is in the foreground
(as of calling Thread() with deamon=True), I don't get why it behaves
differently :( maybe it is waiting for other stuff, but no idea how to
confirm this with strace of other means.. i always see the same
'futex(0x7f9a70000c10, FUTEX_WAIT_PRIVATE, 0, NULL'
--
Marc
More information about the Python-list
mailing list