[Scummvm-cvs-logs] CVS: scummvm/sound mixer.cpp,1.58,1.59

James Brown ender at users.sourceforge.net
Fri Jul 4 07:50:16 CEST 2003


Update of /cvsroot/scummvm/scummvm/sound
In directory sc8-pr-cvs1:/tmp/cvs-serv4403/sound

Modified Files:
	mixer.cpp 
Log Message:
Prevent apparantly possible race condition. I don't get this stuff, and I don't see why the next call to insertChannel is immune to the same theoretical problem :)


Index: mixer.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/mixer.cpp,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- mixer.cpp	4 Jul 2003 14:10:44 -0000	1.58
+++ mixer.cpp	4 Jul 2003 14:49:51 -0000	1.59
@@ -230,9 +230,13 @@
 
 int SoundMixer::playRaw(PlayingSoundHandle *handle, void *sound, uint32 size, uint rate, byte flags, int id) {
 	// Prevent duplicate sounds
+	_syst->lock_mutex(_mutex);	
         for (int i = 0; i != NUM_CHANNELS; i++)
-                if (_channels[i] != NULL && _channels[i]->_id == id)
+                if (_channels[i] != NULL && _channels[i]->_id == id) {
+			_syst->unlock_mutex(_mutex);
 			return -1;
+		}
+	_syst->unlock_mutex(_mutex);
 
 	return insertChannel(handle, new ChannelRaw(this, sound, size, rate, flags, id));
 }





More information about the Scummvm-git-logs mailing list