Any progress on this Gabe? I was thinking of diving in and exploring weak references if no immediate solution has presented itself.
Knowing absolutely zero about them, to what extent could I apply equational reasoning to the minimum code, given the effects in there? I took the liberty of adding this as an open issue on github. On Monday, July 14, 2014 5:04:48 AM UTC+10, Gabriel Gonzalez wrote: > > Alright, so even when I switched to the safe `mkWeakTVar` I still see the > exact same issue. I've also reduced the minimal reproducing program to: > > import Pipes.Concurrent > > main = do > (_, input) <- spawn Unbounded > atomically $ recv input > > It seems like something has fundamentally changed about how weak > references interact with STM transactions in ghc-7.8. Right now I am > trying to see if there is some other way to accomplish the same behavior > without weak references. > > On 7/7/14, 3:53 PM, Michael Thompson wrote: > > 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] <javascript:>. > To post to this group, send email to [email protected] > <javascript:>. > > > -- 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].
