Commit b804390a authored by Greg Ward's avatar Greg Ward

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()
parent 8d1f11b0
......@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment