Author: ArcRiley Date: 2009-02-22 17:27:53 -0500 (Sun, 22 Feb 2009) New Revision: 1515
Modified: trunk/concordance/src/__init__.py trunk/concordance/src/_core/__init__.c trunk/concordance/src/sockets/Socket.c Log: fixed context sharing between modules Modified: trunk/concordance/src/__init__.py =================================================================== --- trunk/concordance/src/__init__.py 2009-02-21 17:31:52 UTC (rev 1514) +++ trunk/concordance/src/__init__.py 2009-02-22 22:27:53 UTC (rev 1515) @@ -26,4 +26,4 @@ from concordance import services from concordance import sockets -del(_core) # Clean up namespace +#del(_core) # Clean up namespace Modified: trunk/concordance/src/_core/__init__.c =================================================================== --- trunk/concordance/src/_core/__init__.c 2009-02-21 17:31:52 UTC (rev 1514) +++ trunk/concordance/src/_core/__init__.c 2009-02-22 22:27:53 UTC (rev 1515) @@ -112,7 +112,6 @@ */ globals->context = g_main_context_new(); - /* launch _core_loop thread GThread* g_thread_create (GThreadFunc func, Modified: trunk/concordance/src/sockets/Socket.c =================================================================== --- trunk/concordance/src/sockets/Socket.c 2009-02-21 17:31:52 UTC (rev 1514) +++ trunk/concordance/src/sockets/Socket.c 2009-02-22 22:27:53 UTC (rev 1515) @@ -21,6 +21,9 @@ #include "concordance.sockets.h" +static gboolean +_listenNew(GIOChannel* channel, GIOCondition condition, gpointer s); + /*\ cdef class Socket : \*/ static char socketsSocket_Doc[] = "Test"; @@ -216,7 +219,7 @@ gint socket; struct sockaddr addr; guint addrlen = sizeof(addr); - + /* accept new connection, return if we fail to connect int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); @@ -246,9 +249,10 @@ _new(PyTypeObject* type, PyObject* args, PyObject* kwds) { /*\ cdef : \*/ socketsSocket_Object* self; + PyObject* _core; - /* first inherit base type */ - self = (socketsSocket_Object*) type->tp_base->tp_new(type, args, kwds); + /* this is lowest level, just alloc */ + self = (socketsSocket_Object*) type->tp_alloc(type, 0); if (!self) return NULL; @@ -280,8 +284,8 @@ void* PyModule_GetState (PyObject*); */ - self->context = (*(concordGlobals**) PyModule_GetState( - *(PyObject**) PyModule_GetState(self->module)))->context; + _core = *(PyObject**) PyModule_GetState(self->module); + self->context = ((concordGlobals*) PyModule_GetState(_core))->context; /* return self */ return (PyObject*) self; @@ -301,8 +305,8 @@ if (self->module) Py_DECREF(self->module); - /* lastly dealloc base type */ - s->ob_type->tp_base->tp_dealloc(s); + /* lastly delete the object */ + PyObject_Del(self); } /* @@ -321,10 +325,10 @@ "concordance.sockets.Socket", /*tp_name*/ sizeof(socketsSocket_Object), /*tp_basicsize*/ 0, /*tp_itemsize*/ - (destructor) _dealloc, /*tp_dealloc*/ + _dealloc, /*tp_dealloc*/ 0, /*tp_print*/ - (getattrfunc) 0, /*tp_getattr*/ - (setattrfunc) 0, /*tp_setattr*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ 0, /*tp_compare*/ 0, /*tp_repr*/ 0, /*tp_as_number*/ _______________________________________________ PySoy-SVN mailing list PySoy-SVN@pysoy.org http://www.pysoy.org/mailman/listinfo/pysoy-svn