mirror of
https://github.com/python/cpython.git
synced 2026-01-06 15:32:22 +00:00
Release the GIL in two more methods:
* sync(), because it waits for hardware buffers to flush, which
can take several seconds depending on cirumstances (according
to the OSS docs)
* close(), because it does an implicit sync()
This commit is contained in:
parent
8d1f11b0ef
commit
b804390ae3
1 changed files with 8 additions and 1 deletions
|
|
@ -353,7 +353,12 @@ oss_speed(oss_audio_t *self, PyObject *args)
|
|||
static PyObject *
|
||||
oss_sync(oss_audio_t *self, PyObject *args)
|
||||
{
|
||||
return _do_ioctl_0(self->fd, args, "sync", SNDCTL_DSP_SYNC);
|
||||
int rv;
|
||||
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
rv = _do_ioctl_0(self->fd, args, "sync", SNDCTL_DSP_SYNC);
|
||||
Py_END_ALLOW_THREADS
|
||||
return rv;
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
|
|
@ -478,7 +483,9 @@ oss_close(oss_audio_t *self, PyObject *args)
|
|||
return NULL;
|
||||
|
||||
if (self->fd >= 0) {
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
close(self->fd);
|
||||
Py_END_ALLOW_THREADS
|
||||
self->fd = -1;
|
||||
}
|
||||
Py_INCREF(Py_None);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue