[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