[Python-checkins] CVS: python/dist/src/Modules _cursesmodule.c,2.24,2.25
A.M. Kuchling
python-dev@python.org
Thu, 22 Jun 2000 18:36:24 -0700
Update of /cvsroot/python/python/dist/src/Modules
In directory slayer.i.sourceforge.net:/tmp/cvs-serv21471
Modified Files:
_cursesmodule.c
Log Message:
Release the global interpreter lock around the most important
functions that might block or pause
Index: _cursesmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/_cursesmodule.c,v
retrieving revision 2.24
retrieving revision 2.25
diff -C2 -r2.24 -r2.25
*** _cursesmodule.c 2000/06/21 01:41:48 2.24
--- _cursesmodule.c 2000/06/23 01:36:21 2.25
***************
*** 634,643 ****
--- 634,647 ----
switch (ARG_COUNT(arg)) {
case 0:
+ Py_BEGIN_ALLOW_THREADS
rtn = wgetch(self->win);
+ Py_END_ALLOW_THREADS
break;
case 2:
if (!PyArg_Parse(arg,"(ii);y,x",&y,&x))
return NULL;
+ Py_BEGIN_ALLOW_THREADS
rtn = mvwgetch(self->win,y,x);
+ Py_END_ALLOW_THREADS
break;
default:
***************
*** 658,667 ****
--- 662,675 ----
switch (ARG_COUNT(arg)) {
case 0:
+ Py_BEGIN_ALLOW_THREADS
rtn = wgetch(self->win);
+ Py_END_ALLOW_THREADS
break;
case 2:
if (!PyArg_Parse(arg,"(ii);y,x",&y,&x))
return NULL;
+ Py_BEGIN_ALLOW_THREADS
rtn = mvwgetch(self->win,y,x);
+ Py_END_ALLOW_THREADS
break;
default:
***************
*** 686,700 ****
--- 694,714 ----
switch (ARG_COUNT(arg)) {
case 0:
+ Py_BEGIN_ALLOW_THREADS
rtn2 = wgetstr(self->win,rtn);
+ Py_END_ALLOW_THREADS
break;
case 1:
if (!PyArg_Parse(arg,"i;n", &n))
return NULL;
+ Py_BEGIN_ALLOW_THREADS
rtn2 = wgetnstr(self->win,rtn,n);
+ Py_END_ALLOW_THREADS
break;
case 2:
if (!PyArg_Parse(arg,"(ii);y,x",&y,&x))
return NULL;
+ Py_BEGIN_ALLOW_THREADS
rtn2 = mvwgetstr(self->win,y,x,rtn);
+ Py_END_ALLOW_THREADS
break;
case 3:
***************
*** 703,710 ****
--- 717,728 ----
#if defined(__sgi__) || defined(__sun__)
/* Untested */
+ Py_BEGIN_ALLOW_THREADS
rtn2 = wmove(self->win,y,x)==ERR ? ERR :
wgetnstr(self->win, rtn, n);
+ Py_END_ALLOW_THREADS
#else
+ Py_BEGIN_ALLOW_THREADS
rtn2 = mvwgetnstr(self->win, y, x, rtn, n);
+ Py_END_ALLOW_THREADS
#endif
break;
***************
*** 997,1000 ****
--- 1015,1019 ----
{
int pminrow,pmincol,sminrow,smincol,smaxrow,smaxcol;
+ int rtn;
if (self->win->_flags & _ISPAD) {
***************
*** 1007,1017 ****
&smincol, &smaxrow, &smaxcol))
return NULL;
! return PyCursesCheckERR(pnoutrefresh(self->win,
! pminrow, pmincol, sminrow,
! smincol, smaxrow, smaxcol),
! "pnoutrefresh");
default:
PyErr_SetString(PyCursesError,
! "noutrefresh was called for a pad;" \
"requires 6 arguments");
return NULL;
--- 1026,1038 ----
&smincol, &smaxrow, &smaxcol))
return NULL;
! Py_BEGIN_ALLOW_THREADS
! rtn = pnoutrefresh(self->win,
! pminrow, pmincol, sminrow,
! smincol, smaxrow, smaxcol),
! Py_END_ALLOW_THREADS
! return PyCursesCheckERR(rtn, "pnoutrefresh");
default:
PyErr_SetString(PyCursesError,
! "noutrefresh() called for a pad "
"requires 6 arguments");
return NULL;
***************
*** 1020,1024 ****
if (!PyArg_NoArgs(arg))
return NULL;
! return PyCursesCheckERR(wnoutrefresh(self->win), "wnoutrefresh");
}
}
--- 1041,1049 ----
if (!PyArg_NoArgs(arg))
return NULL;
!
! Py_BEGIN_ALLOW_THREADS
! rtn = wnoutrefresh(self->win);
! Py_END_ALLOW_THREADS
! return PyCursesCheckERR(rtn, "wnoutrefresh");
}
}
***************
*** 1058,1061 ****
--- 1083,1087 ----
{
int pminrow,pmincol,sminrow,smincol,smaxrow,smaxcol;
+ int rtn;
if (self->win->_flags & _ISPAD) {
***************
*** 1068,1078 ****
&smincol, &smaxrow, &smaxcol))
return NULL;
! return PyCursesCheckERR(prefresh(self->win,
! pminrow, pmincol, sminrow,
! smincol, smaxrow, smaxcol),
! "prefresh");
default:
PyErr_SetString(PyCursesError,
! "refresh was called for a pad; requires 6 arguments");
return NULL;
}
--- 1094,1108 ----
&smincol, &smaxrow, &smaxcol))
return NULL;
!
! Py_BEGIN_ALLOW_THREADS
! rtn = prefresh(self->win,
! pminrow, pmincol, sminrow,
! smincol, smaxrow, smaxcol),
!
! Py_END_ALLOW_THREADS
! return PyCursesCheckERR(rtn, "prefresh");
default:
PyErr_SetString(PyCursesError,
! "refresh() for a pad requires 6 arguments");
return NULL;
}
***************
*** 1080,1084 ****
if (!PyArg_NoArgs(arg))
return NULL;
! return PyCursesCheckERR(wrefresh(self->win), "wrefresh");
}
}
--- 1110,1117 ----
if (!PyArg_NoArgs(arg))
return NULL;
! Py_BEGIN_ALLOW_THREADS
! rtn = wrefresh(self->win);
! Py_END_ALLOW_THREADS
! return PyCursesCheckERR(rtn);
}
}