Reimplement Control.Concurrent.Chan
Changes PlannedPublic

Authored by dfeuer on Wed, Jun 27, 1:02 AM.

Details

Summary

Instead of using two MVars delimiting a whole stream of MVars, we
can use one MVar and one IORef indexing into a "pure" stream of previous puts into
another MVar. Better? Dunno.

dfeuer created this revision.Wed, Jun 27, 1:02 AM
simonmar requested changes to this revision.Wed, Jun 27, 3:45 AM

Better? Dunno.

Requesting changes to this bit :)

This revision now requires changes to proceed.Wed, Jun 27, 3:45 AM
dfeuer updated this revision to Diff 17111.Wed, Jun 27, 10:05 PM
  • Put back one MVar
dfeuer edited the summary of this revision. (Show Details)Wed, Jun 27, 10:15 PM
dfeuer updated this revision to Diff 17112.Wed, Jun 27, 10:26 PM
  • Put back one MVar
dfeuer planned changes to this revision.Thu, Jun 28, 11:48 PM

I'm getting very inconsistent benchmark results. This does much better and much worse than the current implementation depending on the situation, and I don't yet understand why.