[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