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