This commit is contained in:
2026-04-09 21:54:18 +02:00
commit ad33255b88
8906 changed files with 1437726 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
import gc
import weakref
import greenlet
from . import TestCase
class WeakRefTests(TestCase):
def test_dead_weakref(self):
def _dead_greenlet():
g = greenlet.greenlet(lambda: None)
g.switch()
return g
o = weakref.ref(_dead_greenlet())
gc.collect()
self.assertEqual(o(), None)
def test_inactive_weakref(self):
o = weakref.ref(greenlet.greenlet())
gc.collect()
self.assertEqual(o(), None)
def test_dealloc_weakref(self):
seen = []
def worker():
try:
greenlet.getcurrent().parent.switch()
finally:
seen.append(g())
g = greenlet.greenlet(worker)
g.switch()
g2 = greenlet.greenlet(lambda: None, g)
g = weakref.ref(g2)
g2 = None
self.assertEqual(seen, [None])