New submission from Matthias Badaire <mbada...@gmail.com>:
Hi, I have an issue when using asyncio and two interpreter instances each launched and used in a seperated thread. I am getting a asyncio loop for each thread .However asyncio is getting me the same loop because of this code in get_running_loop. Indeed when I have two interpreter, the ts_id would be the same for both my threads and therefore I will get the cached value of the first thread. cached_running_holder being static, it is the same value for all instances of interpreter. Maybe we should check if we are in the same interpreter or same thread ,.. I am not sure how it could be fixed. _asynciomodule.c: get_running_loop(PyObject **loop) { PyObject *rl; PyThreadState *ts = _PyThreadState_GET(); uint64_t ts_id = PyThreadState_GetID(ts); if (ts_id == cached_running_holder_tsid && cached_running_holder != NULL) { If it does not make sense, I have some sample code but it is not just 10 lines. ---------- components: asyncio messages: 416694 nosy: asvetlov, mbadaire, yselivanov priority: normal severity: normal status: open title: asyncio with two interpreter instances type: behavior _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue47219> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com