audio: when is a "Resource temporarily unavailable"?
m.b.lankhorst at gmail.com
Tue Sep 13 10:32:20 CDT 2011
On 09/12/2011 02:14 PM, Joerg-Cyril.Hoehle at t-systems.com wrote:
> Bug #28056 involving FreeBSD and OSS exhibits:
> warn:oss:AudioRenderClient_ReleaseBuffer write failed: 35 (Resource temporarily unavailable)
> My own notes from times as old as wine-1.1.8 show the same error with ALSA:
> err:wave:wodPlayer_WriteMaxFrags Error in writing wavehdr. Reason: Resource temporarily unavailable
> The symbolic errno constant is EAGAIN=EWOULDBLOCK.
So we look at write manpage..
EAGAIN or EWOULDBLOCK
The file descriptor fd refers to a socket and has been
marked nonblocking (O_NONBLOCK), and the write would
block. POSIX.1-2001 allows either error to be
returned for this case, and does not require these
constants to have the same value, so a portable appli‐
cation should check for both possibilities.
> Does anybody have a suspicion when/why this happens?
> - is audio simply not reliable?
> - is Wine not correctly driving audio output?
> - ...?
> FWIW, my test experiments outside Wine recently produced EWOULDBLOCK
> once despite non-blocking mode in ALSA, when attempting to write a small
> number of frames, less than period_size.
> Is this failure really temporary or would it be safer
> to close or reset the audio device given such an error value?
> What's your experience?
Usually: you're trying to put more data in the audio buffer than the amount that can written.
Similar errors happen on alsa, when trying to write > snd_pcm_avail();
Looks like a bug to me.
More information about the wine-devel