Changed (again) how the Python global interpreter lock is handled as
well as the Python thread state. This time it works on SMP machines without barfing and is also still compatible with Python debuggers. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13097 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -138,10 +138,11 @@ static PyObject *_wrap_new_wxGLContext(PyObject *self, PyObject *args, PyObject
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        _result = (wxGLContext *)new_wxGLContext(_arg0,_arg1,*_arg2);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    if (_result) {
 | 
			
		||||
        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLContext_p");
 | 
			
		||||
        _resultobj = Py_BuildValue("s",_ptemp);
 | 
			
		||||
@@ -170,10 +171,11 @@ static PyObject *_wrap_delete_wxGLContext(PyObject *self, PyObject *args, PyObje
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        delete_wxGLContext(_arg0);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    Py_INCREF(Py_None);
 | 
			
		||||
    _resultobj = Py_None;
 | 
			
		||||
    return _resultobj;
 | 
			
		||||
@@ -197,10 +199,11 @@ static PyObject *_wrap_wxGLContext_SetCurrent(PyObject *self, PyObject *args, Py
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        wxGLContext_SetCurrent(_arg0);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    Py_INCREF(Py_None);
 | 
			
		||||
    _resultobj = Py_None;
 | 
			
		||||
    return _resultobj;
 | 
			
		||||
@@ -225,10 +228,11 @@ static PyObject *_wrap_wxGLContext_SetColour(PyObject *self, PyObject *args, PyO
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        wxGLContext_SetColour(_arg0,_arg1);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    Py_INCREF(Py_None);
 | 
			
		||||
    _resultobj = Py_None;
 | 
			
		||||
    return _resultobj;
 | 
			
		||||
@@ -252,10 +256,11 @@ static PyObject *_wrap_wxGLContext_SwapBuffers(PyObject *self, PyObject *args, P
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        wxGLContext_SwapBuffers(_arg0);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    Py_INCREF(Py_None);
 | 
			
		||||
    _resultobj = Py_None;
 | 
			
		||||
    return _resultobj;
 | 
			
		||||
@@ -280,10 +285,11 @@ static PyObject *_wrap_wxGLContext_GetWindow(PyObject *self, PyObject *args, PyO
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        _result = (wxWindow *)wxGLContext_GetWindow(_arg0);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}{ _resultobj = wxPyMake_wxObject(_result); }
 | 
			
		||||
    return _resultobj;
 | 
			
		||||
}
 | 
			
		||||
@@ -378,10 +384,11 @@ static PyObject *_wrap_new_wxGLCanvas(PyObject *self, PyObject *args, PyObject *
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        _result = (wxGLCanvas *)new_wxGLCanvas(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6,*_arg7);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    if (_result) {
 | 
			
		||||
        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLCanvas_p");
 | 
			
		||||
        _resultobj = Py_BuildValue("s",_ptemp);
 | 
			
		||||
@@ -470,10 +477,11 @@ static PyObject *_wrap_new_wxGLCanvasWithContext(PyObject *self, PyObject *args,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        _result = (wxGLCanvas *)new_wxGLCanvasWithContext(_arg0,_arg1,_arg2,*_arg3,*_arg4,_arg5,_arg6,_arg7,*_arg8);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    if (_result) {
 | 
			
		||||
        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLCanvas_p");
 | 
			
		||||
        _resultobj = Py_BuildValue("s",_ptemp);
 | 
			
		||||
@@ -505,10 +513,11 @@ static PyObject *_wrap_wxGLCanvas_SetCurrent(PyObject *self, PyObject *args, PyO
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        wxGLCanvas_SetCurrent(_arg0);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    Py_INCREF(Py_None);
 | 
			
		||||
    _resultobj = Py_None;
 | 
			
		||||
    return _resultobj;
 | 
			
		||||
@@ -533,10 +542,11 @@ static PyObject *_wrap_wxGLCanvas_SetColour(PyObject *self, PyObject *args, PyOb
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        wxGLCanvas_SetColour(_arg0,_arg1);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    Py_INCREF(Py_None);
 | 
			
		||||
    _resultobj = Py_None;
 | 
			
		||||
    return _resultobj;
 | 
			
		||||
@@ -560,10 +570,11 @@ static PyObject *_wrap_wxGLCanvas_SwapBuffers(PyObject *self, PyObject *args, Py
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        wxGLCanvas_SwapBuffers(_arg0);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    Py_INCREF(Py_None);
 | 
			
		||||
    _resultobj = Py_None;
 | 
			
		||||
    return _resultobj;
 | 
			
		||||
@@ -589,10 +600,11 @@ static PyObject *_wrap_wxGLCanvas_GetContext(PyObject *self, PyObject *args, PyO
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        _result = (wxGLContext *)wxGLCanvas_GetContext(_arg0);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    if (_result) {
 | 
			
		||||
        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLContext_p");
 | 
			
		||||
        _resultobj = Py_BuildValue("s",_ptemp);
 | 
			
		||||
@@ -637,10 +649,11 @@ static PyObject *_wrap_wxGLCanvas_SetupPixelFormat(PyObject *self, PyObject *arg
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        wxGLCanvas_SetupPixelFormat(_arg0,_arg1);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    Py_INCREF(Py_None);
 | 
			
		||||
    _resultobj = Py_None;
 | 
			
		||||
{
 | 
			
		||||
@@ -676,10 +689,11 @@ static PyObject *_wrap_wxGLCanvas_SetupPalette(PyObject *self, PyObject *args, P
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        wxGLCanvas_SetupPalette(_arg0,*_arg1);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    Py_INCREF(Py_None);
 | 
			
		||||
    _resultobj = Py_None;
 | 
			
		||||
    return _resultobj;
 | 
			
		||||
@@ -705,10 +719,11 @@ static PyObject *_wrap_wxGLCanvas_CreateDefaultPalette(PyObject *self, PyObject
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        _result = new wxPalette (wxGLCanvas_CreateDefaultPalette(_arg0));
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    SWIG_MakePtr(_ptemp, (void *) _result,"_wxPalette_p");
 | 
			
		||||
    _resultobj = Py_BuildValue("s",_ptemp);
 | 
			
		||||
    return _resultobj;
 | 
			
		||||
@@ -734,10 +749,11 @@ static PyObject *_wrap_wxGLCanvas_GetPalette(PyObject *self, PyObject *args, PyO
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
{
 | 
			
		||||
    wxPy_BEGIN_ALLOW_THREADS;
 | 
			
		||||
    PyThreadState* __tstate = wxPyBeginAllowThreads();
 | 
			
		||||
        _result = (wxPalette *)wxGLCanvas_GetPalette(_arg0);
 | 
			
		||||
 | 
			
		||||
    wxPy_END_ALLOW_THREADS;
 | 
			
		||||
    wxPyEndAllowThreads(__tstate);
 | 
			
		||||
    if (PyErr_Occurred()) return NULL;
 | 
			
		||||
}    if (_result) {
 | 
			
		||||
        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p");
 | 
			
		||||
        _resultobj = Py_BuildValue("s",_ptemp);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user