aboutsummaryrefslogtreecommitdiff
path: root/common/system.h
diff options
context:
space:
mode:
authorMax Horn2007-12-22 13:16:01 +0000
committerMax Horn2007-12-22 13:16:01 +0000
commit019ad448223a0dc881737e5f7766142c3862765f (patch)
tree5a2b8968d927f8c4be2bae989096b5518383486b /common/system.h
parentf00ebbf8d908b6865c67edcd59eba55d99d223b0 (diff)
downloadscummvm-rg350-019ad448223a0dc881737e5f7766142c3862765f.tar.gz
scummvm-rg350-019ad448223a0dc881737e5f7766142c3862765f.tar.bz2
scummvm-rg350-019ad448223a0dc881737e5f7766142c3862765f.zip
Document that we expect recursive mutex locking behavior
svn-id: r29952
Diffstat (limited to 'common/system.h')
-rw-r--r--common/system.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/common/system.h b/common/system.h
index a55bc2b543..7246389bab 100644
--- a/common/system.h
+++ b/common/system.h
@@ -750,6 +750,8 @@ public:
* But since those may be implemented using threads (and in fact, that's
* how our primary backend, the SDL one, does it on many systems), we
* still have to do mutex syncing in our timer callbacks.
+ * In addition, the sound mixer uses a mutex in case the backend runs it
+ * from a dedicated thread (as e.g. the SDL backend does).
*
* Hence backends which do not use threads to implement the timers simply
* can use dummy implementations for these methods.
@@ -766,6 +768,12 @@ public:
/**
* Lock the given mutex.
+ *
+ * @note ScummVM code assumes that the mutex implementation supports
+ * recursive locking. That is, a thread may lock a mutex twice w/o
+ * deadlocking. In case of a multilock, the mutex has to be unlocked
+ * as many times as it was locked befored it really becomes unlocked.
+ *
* @param mutex the mutex to lock.
*/
virtual void lockMutex(MutexRef mutex) = 0;