Ticket #8 (new defect)
Problems with filterMP
| Reported by: | pierre | Owned by: | somebody |
|---|---|---|---|
| Priority: | critical | Milestone: | |
| Version: | Keywords: | ||
| Cc: |
Description
This sample code generates rather strange results:
import FRP.Reactive as R
import FRP.Reactive.LegacyAdapters
import Control.Applicative
import Control.Monad
import Data.Monoid
import Control.Concurrent
import System.IO
main = do
c <- makeClock
(onStanza, snk_onS) <- makeEvent c
let bred = ((const $ putStrLn ">10") <$> filterMP (>10) onStanza) `mappend`
((const $ putStrLn "<10") <$> filterMP (<10) onStanza)
hSetBuffering stdout NoBuffering
doSched c connect bred
mapM (\x -> snk_onS x >> threadDelay 1000) [5..15]
forever $ threadDelay 1000000000
return ()
doSched clock init act = do
updater <- mkUpdater (cGetTime clock) (stepper init act)
forkIO $ forever $ (updater)
After displaying:
<10 <10
everything hangs. Debugging shows that sink and updater are called, but updater does nothing.
Same code without filterMP works as expected: it displays 20 messages.
Change History
Note: See
TracTickets for help on using
tickets.
