cvs commit: fptools/libraries/base/Control/Concurrent QSemN.hs
Simon Marlow
simonmar@glass.cse.ogi.edu
Tue, 3 Dec 2002 06:30:13 -0800
simonmar 2002/12/03 06:30:12 PST
Modified files:
libraries/base/Control/Concurrent QSemN.hs
Log:
Eeek! A nasty bug has been lurking in waitQSemN, which as far as I
can make out has been there for ever. Presumably no-one uses this
abstraction...
The bug is that waitQSemN would discard any other blocked threads
(presumably waiting for a larger chunk of the semaphore) if it
succeeds.
It still looks to me like the quantity semaphores in here can suffer
from starvation: if one thread requests a large chunk, while lots of
other threads are requesting smaller chunks, then the thread
requesting the large chunk might never get to run. I'm sure this must
be a well-known problem.
MERGE TO STABLE
Revision Changes Path
1.6 +1 -1 fptools/libraries/base/Control/Concurrent/QSemN.hs