1 #include <Launchers.hxx>
6 static int Launchers_IsLoaded = 0;
7 static PyObject * Launchers_module = 0;
8 static char * Launchers_name="Launchers";
10 PyThreadState *mainThreadState=0;
12 PyThreadState * getMainThreadState(){
13 PyInterpreterState *interp;
15 interp=PyInterpreterState_Head();
16 for (interp = PyInterpreterState_Head(); interp != NULL; ){
17 if(interp->next == NULL)break;
20 for (p = interp->tstate_head; p != NULL; ){
21 if(p->next == NULL)break;
26 PyThreadState *acquireMainThread(){
28 return PyThreadState_Swap(mainThreadState);
30 void releaseMainThread(PyThreadState *tstate){
31 PyThreadState_Swap(tstate);
35 void Launchers_assertInitialized() {
36 MESSAGE("===========================================================");
37 MESSAGE("Launchers_assertInitialized");
38 MESSAGE("===========================================================");
40 if( !Py_IsInitialized() ) {
41 MESSAGE("===========================================================");
42 MESSAGE("Py_Initialize()");
43 MESSAGE("===========================================================");
48 if( !Launchers_IsLoaded ) {
49 mainThreadState=getMainThreadState();
50 _save=acquireMainThread();
51 Launchers_module=PyImport_ImportModule(Launchers_name);
52 if(!Launchers_module){
56 Py_INCREF(Launchers_module);
57 Launchers_IsLoaded = 1;
58 releaseMainThread(_save);
62 PyObject * getLauncher(char* arg0) {
65 Launchers_assertInitialized();
66 _save=acquireMainThread();
67 v=PyObject_CallMethod(Launchers_module,"getLauncher","s",arg0);
72 releaseMainThread(_save);
77 void Launcher_Slaunch(PyObject *self, char* arg1, char* arg2) {
80 Launchers_assertInitialized();
81 _save=acquireMainThread();
82 v=PyObject_CallMethod(self,"Slaunch","ss",arg1,arg2);
86 releaseMainThread(_save);