The bit about user input was nonsense; the example wasn't using the `user`
it defined. Here is a more minimal main (with the same `worker`):
main = do
(output, input) <- spawn (Bounded 1)
a1 <- async $ runEffect $ fromInput input >-> worker 1
a2 <- async $ runEffect $ yield 1 >-> toOutput output
wait a1
wait a2
$ ./work
Worker #1: Processed 1
work: thread blocked indefinitely in an STM transaction
It works if a higher `Bounded` or if `Unbounded` is chosen; it works if the
second `wait` is dropped, etc.
The most striking difference was the use of `Unbounded` in the good version
and `Bounded` in the separate module.
--
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].