﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
166	nspr: Use WinWaitEventSem instead of DosWaitEventSem	dmik		"There is some code that uses `DosWaitEventSem`. In particular, `PR_WaitCondVar`. Using `PR_WaitCondVar` in a GUI thread of a PM app will effectively block not only this app but the whole PM due to the SMQ (single message queue) syndrome. See https://github.com/bitwiseworks/mozilla-os2/issues/225 for a real life example.

Using `WinWaitEventSem` instead of `DosWaitEventSem` fixes the problem and makes `PR_WaitCondVar` PM-friendly. However, this brings a dependency on `PMWIN.DLL` to `NSPR4.DLL` which will make it impossible to use apps linked against NSPR4.DLL in a PM-less environment (i.e. when CMD.EXE or another application is used as a protmode shell instead of PMSHELL.EXE and PMWIN.DLL is not available at all).

To avoid this, we should load `WinWaitEventSem` dynamically and use `DosWaitEventSem` as a fallback."	task	closed	major		nspr		medium	fixed		dryeo
