[parsec-users] patch for deadlock in ferret

Chris Fensch c.fensch at ed.ac.uk
Wed Mar 17 10:32:30 EDT 2010


   in response to the deadlock I discovered in ferret, I have written
the following patch. The following changes are made:

- the patch replaces the queue implementation with the one from dedup.
  However, support for enqueueing/dequeueing several elements has been

- all synchronisation via global variables has been removed:
  - the end of input is signalled by informing the queue that the
    producing thread is terminating (similar to dedup).
  - the end of output is signalled by making the main thread wait to
    join the output thread.

I think that should take care of the synchronisation problem. Please let
me know if there is another issue with this solution.

  Chris F

The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ferret.patch
Type: text/x-patch
Size: 13759 bytes
Desc: not available
URL: <http://lists.cs.princeton.edu/pipermail/parsec-users/attachments/20100317/5289a5ef/attachment.bin>

More information about the parsec-users mailing list