Exemplo n.º 1
0
     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\
");
Exemplo n.º 2
0
	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,