[Scummvm-cvs-logs] SF.net SVN: scummvm: [30207] scummvm/branches/branch-0-11-0/engines/scumm/ imuse_digi/dimuse_track.cpp
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Fri Jan 4 00:37:32 CET 2008
Revision: 30207
http://scummvm.svn.sourceforge.net/scummvm/?rev=30207&view=rev
Author: fingolfin
Date: 2008-01-03 15:37:32 -0800 (Thu, 03 Jan 2008)
Log Message:
-----------
Patch from bug #1854550: This fixes a race condition which has already been fixed in the trunk
Modified Paths:
--------------
scummvm/branches/branch-0-11-0/engines/scumm/imuse_digi/dimuse_track.cpp
Modified: scummvm/branches/branch-0-11-0/engines/scumm/imuse_digi/dimuse_track.cpp
===================================================================
--- scummvm/branches/branch-0-11-0/engines/scumm/imuse_digi/dimuse_track.cpp 2008-01-03 23:37:02 UTC (rev 30206)
+++ scummvm/branches/branch-0-11-0/engines/scumm/imuse_digi/dimuse_track.cpp 2008-01-03 23:37:32 UTC (rev 30207)
@@ -71,6 +71,7 @@
}
void IMuseDigital::startSound(int soundId, const char *soundName, int soundType, int volGroupId, Audio::AudioStream *input, int hookId, int volume, int priority) {
+ Common::StackLock lock(_mutex, "IMuseDigital::startSound()");
debug(5, "IMuseDigital::startSound(%d)", soundId);
int l = allocSlot(priority);
@@ -81,7 +82,6 @@
Track *track = _track[l];
while (1) {
- _mutex.lock();
if (!track->used) {
break;
}
@@ -94,6 +94,7 @@
#ifndef __PLAYSTATION2__
_vm->parseEvents();
#endif
+ _mutex.lock();
}
track->pan = 64;
@@ -191,7 +192,6 @@
}
track->used = true;
- _mutex.unlock();
}
void IMuseDigital::setPriority(int soundId, int priority) {
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