diff libao2/ao_win32.c @ 28776:ceafb4a24753

full_buffers and buffered_bytes must be volatile because they are used from different threads, hopefully this fixes an uninit hang. The code still relies on luck for thread-safety though.
author reimar
date Thu, 05 Mar 2009 12:25:10 +0000
parents 0f42fb42843c
children afbd8dd23299
line wrap: on
line diff
--- a/libao2/ao_win32.c	Thu Mar 05 07:00:45 2009 +0000
+++ b/libao2/ao_win32.c	Thu Mar 05 12:25:10 2009 +0000
@@ -88,8 +88,8 @@
 static HWAVEOUT     hWaveOut;           //handle to the waveout device
 static unsigned int buf_write=0;
 static unsigned int buf_write_pos=0;
-static int          full_buffers=0;
-static int          buffered_bytes=0;
+static volatile int full_buffers=0;
+static volatile int buffered_bytes=0;
 
 
 static ao_info_t info =