From e50443b874cdea9bcfdecd38e327dc4b2694ed02 Mon Sep 17 00:00:00 2001 From: necoro <> Date: Sun, 17 Sep 2006 17:23:45 +0000 Subject: Removed our own threading-module ... --- geneticone/modules/geneticthread.c | 62 -------------------------------------- 1 file changed, 62 deletions(-) delete mode 100644 geneticone/modules/geneticthread.c (limited to 'geneticone/modules/geneticthread.c') diff --git a/geneticone/modules/geneticthread.c b/geneticone/modules/geneticthread.c deleted file mode 100644 index 33520a6..0000000 --- a/geneticone/modules/geneticthread.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * This is a python module implementing real threads. - */ -#include -#include - -/** - * Callback for the thread. Just calls the argument's python function. - */ -static void * thread_cb (void * arg) -{ - PyObject * arglist; - - arglist = Py_BuildValue("()",NULL); - PyEval_CallObject((PyObject*)arg, arglist); - Py_DECREF(arglist); - Py_DECREF((PyObject*)arg); - - return NULL; -} - -/** - * Function called from the python application. - */ -static PyObject * thread_start (PyObject * self, PyObject *args) -{ - PyObject *temp; - pthread_t ID; - - if (PyArg_ParseTuple(args, "O:thread_start", &temp)) // get argument - { - if (!PyCallable_Check(temp)) // not callable - { - PyErr_SetString(PyExc_TypeError, "parameter must be callable"); - return NULL; - } - Py_INCREF(temp); /* Add a reference to new callback */ - int status = pthread_create(&ID, NULL, thread_cb, (void*) temp); - if (status) - { - PyErr_SetString(PyExc_SystemError, "error during thread start"); - return NULL; - } - } - - Py_RETURN_NONE; -} - -static PyMethodDef ThreadMethods[] = { - {"thread_start", thread_start, METH_VARARGS, - "Start a new thread."}, - {NULL, NULL, 0, NULL} /* Sentinel */ -}; - -/** - * Init function. - */ -PyMODINIT_FUNC -initgeneticthread(void) -{ - (void) Py_InitModule("geneticthread", ThreadMethods); -} -- cgit v1.2.3-70-g09d2