iteratee ANN: -stm released

John Lato jwlato at
Sat Oct 8 13:50:32 BST 2011


I just uploaded iteratee-stm to hackage.  Iteratee-stm provides
iteratees and enumerators to work with bounded STM channels.

The two main functions are `forkIter` and `forkEnum`, which fork a
thread to run an iteratee and enumerator, respectively.

Basic usage is very simple, just change

      enum iteratee >>= run


      (forkEnum chansize enum) iter >>= run

and of course compile with -threaded and -rtsopts.

For my usage this has provided a substantial performance benefit with
a chansize of 2 or 4.

One issue to be aware of: iteratee exceptions are not propagated
between forked enumerators/iteratees.  This means that if the iteratee
uses seek, or otherwise makes use of exceptions, the resulting program
will not work.  A likely result is a runtime crash.  I plan to get
this really resolved with iteratee-0.9.

Feedback is welcome!

John Lato

More information about the Iteratee mailing list