[Scummvm-cvs-logs] SF.net SVN: scummvm: [29553] scummvm/trunk/engines/lure/sound.cpp

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Sun Nov 18 08:42:49 CET 2007


Revision: 29553
          http://scummvm.svn.sourceforge.net/scummvm/?rev=29553&view=rev
Author:   dreammaster
Date:     2007-11-17 23:42:49 -0800 (Sat, 17 Nov 2007)

Log Message:
-----------
Added some extra mutex locks to the sound code to hopefully prevent randomo crashes

Modified Paths:
--------------
    scummvm/trunk/engines/lure/sound.cpp

Modified: scummvm/trunk/engines/lure/sound.cpp
===================================================================
--- scummvm/trunk/engines/lure/sound.cpp	2007-11-18 06:25:23 UTC (rev 29552)
+++ scummvm/trunk/engines/lure/sound.cpp	2007-11-18 07:42:49 UTC (rev 29553)
@@ -371,6 +371,7 @@
 	{
 		inProgress = false;
 
+		g_system->lockMutex(_soundMutex);
 		ManagedList<MidiMusic *>::iterator i;
 		for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
 			MidiMusic *music = *i;
@@ -380,6 +381,7 @@
 			}
 		}
 
+		g_system->unlockMutex(_soundMutex);
 		g_system->delayMillis(10);
 	}
 
@@ -457,12 +459,14 @@
 	musicInterface_TidySounds();
 	uint8 soundNum = soundNumber & 0x7f;
 
+	g_system->lockMutex(_soundMutex);
 	ManagedList<MidiMusic *>::iterator i;
 	for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
 		MidiMusic *music = *i;
 		if (music->soundNumber() == soundNum) 
 			return true;
 	}
+	g_system->unlockMutex(_soundMutex);
 
 	return false;
 }
@@ -475,12 +479,14 @@
 		channelNum, volume);
 	musicInterface_TidySounds();
 
+	g_system->lockMutex(_soundMutex);
 	ManagedList<MidiMusic *>::iterator i;
 	for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
 		MidiMusic *music = *i;
 		if (music->channelNumber() == channelNum)
 			music->setVolume(volume);
 	}
+	g_system->unlockMutex(_soundMutex);
 }
 
 // musicInterface_KillAll


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list