static CHANNEL_SEND_HEAD(impl_channel_send) { STACKLESS_GETARG(); PyThreadState *ts = PyThreadState_GET(); if(ts->st.main == NULL) return PyChannel_Send_M(self, arg); return generic_channel_action(self, arg, 1, stackless); }
static PyObject * impl_channel_receive(PyChannelObject *self) { STACKLESS_GETARG(); PyThreadState *ts = PyThreadState_GET(); if (ts->st.main == NULL) return PyChannel_Receive_M(self); return generic_channel_action(self, Py_None, -1, stackless); }
static PyObject * impl_channel_send(PyChannelObject *self, PyObject *arg) { STACKLESS_GETARG(); PyThreadState *ts = PyThreadState_GET(); if(ts->st.main == NULL) return PyChannel_Send_M(self, arg); return generic_channel_action(self, arg, 1, stackless); }
static CHANNEL_SEND_EXCEPTION_HEAD(impl_channel_send_exception) { STACKLESS_GETARG(); PyThreadState *ts = PyThreadState_GET(); PyObject *bomb, *ret = NULL; assert(PyChannel_Check(self)); if (ts->st.main == NULL) return PyChannel_SendException_M(self, klass, args); bomb = slp_make_bomb(klass, args, "channel.send_exception"); if (bomb != NULL) { ret = generic_channel_action(self, bomb, 1, stackless); Py_DECREF(bomb); } return ret; }
static PyObject * impl_channel_send_throw(PyChannelObject *self, PyObject *exc, PyObject *val, PyObject *tb) { STACKLESS_GETARG(); PyThreadState *ts = PyThreadState_GET(); PyObject *bomb, *ret = NULL; assert(PyChannel_Check(self)); if (ts->st.main == NULL) return PyChannel_SendThrow_M(self, exc, val, tb); bomb = slp_exc_to_bomb(exc, val, tb); if (bomb != NULL) { ret = generic_channel_action(self, bomb, 1, stackless); Py_DECREF(bomb); } return ret; }
static PyObject * channel_send(PyObject *self, PyObject *arg) { STACKLESS_GETARG(); return generic_channel_action((PyChannelObject*)self, arg, 1, stackless); }