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].
