From 3347bee15c0e55dc37575c39ff422c196b10821e Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Thu, 6 Apr 2000 19:32:33 +0000 Subject: [PATCH] Make audiodevice blocking directly after the non-blocking open, since we use the write(2) also for synchronization. --- dlls/dsound/dsound_main.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c index 69e8606c0df..453bad36cb6 100644 --- a/dlls/dsound/dsound_main.c +++ b/dlls/dsound/dsound_main.c @@ -2083,7 +2083,7 @@ static DWORD WINAPI DSOUND_MixPrimary(void) static int DSOUND_OpenAudio(void) { - int audioFragment; + int audioFragment,flags; if (primarybuf == NULL) return DSERR_OUTOFMEMORY; @@ -2107,6 +2107,13 @@ static int DSOUND_OpenAudio(void) audioFragment=0x0002000c; if (-1==ioctl(audiofd,SNDCTL_DSP_SETFRAGMENT,&audioFragment)) perror("ioctl SETFRAGMENT"); + + if ((flags = fcntl(audiofd,F_GETFL,0)) != -1) { + flags &= ~O_NDELAY; + if (-1==fcntl(audiofd,F_SETFL,flags)) + perror("clearing the non-blocking flags in DSOUND_OpenAudio"); + } else + perror("cannot get flags of audiofd"); audioOK = 1; DSOUND_setformat(&(primarybuf->wfx));