[py-dev] greenlet.main_greenlet
Tom Locke
tom at livelogix.com
Tue May 17 06:45:26 CEST 2005
Hi,
I had a need to be able to test if the current greenlet was the main
greenlet. I figured this might be something that crops up now and again,
so I added a module attribute `main_greeenlet` (also copied to the type
object), so I can just test for:
greenlet.getcurrent() == greenlet.main_greenlet
There's two small changes to greenlet.c (see diff)
Tom
Index: greenlet.c
===================================================================
--- greenlet.c (revision 12401)
+++ greenlet.c (working copy)
@@ -758,7 +758,7 @@
};
static char* copy_on_greentype[] = {
- "getcurrent", "error", "GreenletExit", NULL
+ "getcurrent", "error", "GreenletExit", "main_greenlet", NULL
};
void initgreenlet(void)
@@ -787,6 +787,8 @@
if (ts_current == NULL)
return;
+ Py_INCREF(ts_current);
+ PyModule_AddObject(m, "main_greenlet", (PyObject*)ts_current);
Py_INCREF(&PyGreen_Type);
PyModule_AddObject(m, "greenlet", (PyObject*) &PyGreen_Type);
Py_INCREF(PyExc_GreenletError);
More information about the Pytest-dev
mailing list