1 #include <Launchers.hxx>
3 static int Launchers_IsLoaded = 0;
4 static PyObject * Launchers_module = 0;
5 static char * Launchers_name="Launchers";
7 PyThreadState *mainThreadState=0;
9 PyThreadState * getMainThreadState(){
10 PyInterpreterState *interp;
12 interp=PyInterpreterState_Head();
13 for (interp = PyInterpreterState_Head(); interp != NULL; ){
14 if(interp->next == NULL)break;
17 for (p = interp->tstate_head; p != NULL; ){
18 if(p->next == NULL)break;
23 PyThreadState *acquireMainThread(){
25 return PyThreadState_Swap(mainThreadState);
27 void releaseMainThread(PyThreadState *tstate){
28 PyThreadState_Swap(tstate);
32 void Launchers_assertInitialized() {
34 if( !Py_IsInitialized() ) {
39 if( !Launchers_IsLoaded ) {
40 mainThreadState=getMainThreadState();
41 _save=acquireMainThread();
42 Launchers_module=PyImport_ImportModule(Launchers_name);
43 if(!Launchers_module){
47 Py_INCREF(Launchers_module);
48 Launchers_IsLoaded = 1;
49 releaseMainThread(_save);
53 PyObject * getLauncher(char* arg0) {
56 Launchers_assertInitialized();
57 _save=acquireMainThread();
58 v=PyObject_CallMethod(Launchers_module,"getLauncher","s",arg0);
63 releaseMainThread(_save);
68 void Launcher_Slaunch(PyObject *self, char* arg1, char* arg2) {
71 Launchers_assertInitialized();
72 _save=acquireMainThread();
73 v=PyObject_CallMethod(self,"Slaunch","ss",arg1,arg2);
77 releaseMainThread(_save);