summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_interpreters/test_channels.py18
-rw-r--r--Modules/_interpchannelsmodule.c4
2 files changed, 20 insertions, 2 deletions
diff --git a/Lib/test/test_interpreters/test_channels.py b/Lib/test/test_interpreters/test_channels.py
index 68cc45d..6c37754 100644
--- a/Lib/test/test_interpreters/test_channels.py
+++ b/Lib/test/test_interpreters/test_channels.py
@@ -48,6 +48,7 @@ class TestChannels(TestBase):
self.assertEqual(after, created)
def test_shareable(self):
+ interp = interpreters.create()
rch, sch = channels.create()
self.assertTrue(
@@ -60,8 +61,25 @@ class TestChannels(TestBase):
rch2 = rch.recv()
sch2 = rch.recv()
+ interp.prepare_main(rch=rch, sch=sch)
+ sch.send_nowait(rch)
+ sch.send_nowait(sch)
+ interp.exec(dedent("""
+ rch2 = rch.recv()
+ sch2 = rch.recv()
+ assert rch2 == rch
+ assert sch2 == sch
+
+ sch.send_nowait(rch2)
+ sch.send_nowait(sch2)
+ """))
+ rch3 = rch.recv()
+ sch3 = rch.recv()
+
self.assertEqual(rch2, rch)
self.assertEqual(sch2, sch)
+ self.assertEqual(rch3, rch)
+ self.assertEqual(sch3, sch)
def test_is_closed(self):
rch, sch = channels.create()
diff --git a/Modules/_interpchannelsmodule.c b/Modules/_interpchannelsmodule.c
index 47dbdeb..f044747 100644
--- a/Modules/_interpchannelsmodule.c
+++ b/Modules/_interpchannelsmodule.c
@@ -2615,10 +2615,10 @@ _get_current_channelend_type(int end)
}
if (cls == NULL) {
// Force the module to be loaded, to register the type.
- PyObject *highlevel = PyImport_ImportModule("interpreters.channel");
+ PyObject *highlevel = PyImport_ImportModule("interpreters.channels");
if (highlevel == NULL) {
PyErr_Clear();
- highlevel = PyImport_ImportModule("test.support.interpreters.channel");
+ highlevel = PyImport_ImportModule("test.support.interpreters.channels");
if (highlevel == NULL) {
return NULL;
}