tasklet_kill__doc__}, {"bind", (PCF)tasklet_bind, METH_O, tasklet_bind__doc__}, {"setup", (PCF)tasklet_setup, METH_KEYWORDS, tasklet_setup__doc__}, {"__reduce__", (PCF)tasklet_reduce, METH_NOARGS, tasklet_reduce__doc__}, {"__reduce_ex__", (PCF)tasklet_reduce, METH_VARARGS, tasklet_reduce__doc__}, {"__setstate__", (PCF)tasklet_setstate, METH_O, tasklet_setstate__doc__}, {NULL, NULL} /* sentinel */ }; static PyCMethodDef tasklet_cmethods[] = { CMETHOD_PUBLIC_ENTRY(PyTasklet_HeapType, tasklet, insert), CMETHOD_PUBLIC_ENTRY(PyTasklet_HeapType, tasklet, run), CMETHOD_PUBLIC_ENTRY(PyTasklet_HeapType, tasklet, remove), CMETHOD_PUBLIC_ENTRY(PyTasklet_HeapType, tasklet, set_atomic), CMETHOD_PUBLIC_ENTRY(PyTasklet_HeapType, tasklet, set_ignore_nesting), CMETHOD_PUBLIC_ENTRY(PyTasklet_HeapType, tasklet, raise_exception), CMETHOD_PUBLIC_ENTRY(PyTasklet_HeapType, tasklet, kill), {NULL} /* sentinel */ }; PyDoc_STRVAR(tasklet__doc__, "A tasklet object represents a tiny task in a Python thread.\n\ At program start, there is always one running main tasklet.\n\ New tasklets can be created with methods from the stackless\n\ module.\n\ ");
for (i = 0; i < n; i++) { t = (PyTaskletObject *) PyList_GET_ITEM(lis, i); if (PyTasklet_Check(t) && !t->flags.blocked) { Py_INCREF(t); slp_channel_insert(ch, t, dir); } } Py_INCREF(self); return self; } static PyCMethodDef channel_cmethods[] = { CMETHOD_PUBLIC_ENTRY(PyChannel_HeapType, channel, send), CMETHOD_PUBLIC_ENTRY(PyChannel_HeapType, channel, send_exception), CMETHOD_PUBLIC_ENTRY(PyChannel_HeapType, channel, receive), {NULL} /* sentinel */ }; #define PCF PyCFunction #define METH_KS METH_KEYWORDS | METH_STACKLESS #define METH_VS METH_VARARGS | METH_STACKLESS #define METH_NS METH_NOARGS | METH_STACKLESS #define METH_OS METH_O | METH_STACKLESS static PyMethodDef channel_methods[] = { {"send", (PCF)channel_send, METH_OS,