mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2026-03-09 05:33:43 -04:00
pcm: add SND_PCM_EINTR open mode
Add possibility to return -EINTR instead waiting for the event. The applications may want to handle -EINTR condition themselves. BugLink: https://github.com/alsa-project/alsa-lib/issues/228 Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
e2d9e41174
commit
d6d5982d3a
2 changed files with 3 additions and 1 deletions
|
|
@ -393,6 +393,8 @@ typedef long snd_pcm_sframes_t;
|
||||||
#define SND_PCM_NONBLOCK 0x00000001
|
#define SND_PCM_NONBLOCK 0x00000001
|
||||||
/** Async notification (flag for open mode) \hideinitializer */
|
/** Async notification (flag for open mode) \hideinitializer */
|
||||||
#define SND_PCM_ASYNC 0x00000002
|
#define SND_PCM_ASYNC 0x00000002
|
||||||
|
/** Return EINTR instead blocking (wait operation) */
|
||||||
|
#define SND_PCM_EINTR 0x00000080
|
||||||
/** In an abort state (internal, not allowed for open) */
|
/** In an abort state (internal, not allowed for open) */
|
||||||
#define SND_PCM_ABORT 0x00008000
|
#define SND_PCM_ABORT 0x00008000
|
||||||
/** Disable automatic (but not forced!) rate resamplinig */
|
/** Disable automatic (but not forced!) rate resamplinig */
|
||||||
|
|
|
||||||
|
|
@ -2938,7 +2938,7 @@ int snd_pcm_wait_nocheck(snd_pcm_t *pcm, int timeout)
|
||||||
err_poll = poll(pfd, npfds, timeout);
|
err_poll = poll(pfd, npfds, timeout);
|
||||||
__snd_pcm_lock(pcm->fast_op_arg);
|
__snd_pcm_lock(pcm->fast_op_arg);
|
||||||
if (err_poll < 0) {
|
if (err_poll < 0) {
|
||||||
if (errno == EINTR && !PCMINABORT(pcm))
|
if (errno == EINTR && !PCMINABORT(pcm) && !(pcm->mode & SND_PCM_EINTR))
|
||||||
continue;
|
continue;
|
||||||
return -errno;
|
return -errno;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue