Hi, I've been playing a bit with Pipes.Concurrent lately, and I seem to be 
stumbling into STM errors more than I'd like. Here's a recent example:

https://gist.github.com/nkpart/5c83011b10b33ebc5e35 

The function takes a number of workers to spawn, a generator of work and 
the function to run on each worker thread. What I don't understand is why I 
needed to explicitly seal the output channels in this example.  Is it 
something to do with the fact I have 2 sets of channels in play? The 
examples in the docs don't illustrate anything like this and that seems to 
me to be the only real point of difference between this and what works.

Also in general, I find that I'm frequently able to get bits and pieces to 
compile, look okay, and maybe even run correctly some percentage of the 
time, and then blow up with STM exceptions occasionally as well. Usually 
I've missed the performGC, but the experience is disturbing to my Haskell 
brain.

Thanks,
Nick

-- 
You received this message because you are subscribed to the Google Groups 
"Haskell Pipes" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].

Reply via email to