Huw Davies (@huw) commented about dlls/mmdevapi/audiosessionmanager.c:
static struct list g_sessions = LIST_INIT(g_sessions);
+static CRITICAL_SECTION g_sessions_lock; +static CRITICAL_SECTION_DEBUG g_sessions_lock_debug = +{
- 0, 0, &g_sessions_lock,
- { &g_sessions_lock_debug.ProcessLocksList, &g_sessions_lock_debug.ProcessLocksList },
- 0, 0, { (DWORD_PTR)(__FILE__ ": g_sessions_lock") }
+}; +static CRITICAL_SECTION g_sessions_lock = { &g_sessions_lock_debug, -1, 0, 0, 0, 0 };
+void lock_sessions(const BOOLEAN lock) +{
- lock ? EnterCriticalSection(&g_sessions_lock) : LeaveCriticalSection(&g_sessions_lock);
+}
I'd prefer two functions `sessions_lock()` and `sessions_unlock()` (cf. `pulse_lock()` and `pulse_unlock()`).