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

Reply via email to