
Hello Haskell-cafe, can you please point me to any OSS implementation of IO Channels with priorities - i.e. data pushed to the Chan using high priority should be read prior to the data pushed with lower priority: pushChan ch 1 'x' pushChan ch 2 'y' readChan ch >>= print -- prints 'y' i've found only STM implementations - i don't know STM enough, may be i just need to convert STM to IO operations? i don't expect strong guarantees, my algorithm will remain correct anyway. and i don't have lot of objects, it's just a few dozens -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

STM is very simple to use, you create transactions in the STM monad
(actions that should be executed as an atomic unit) then execute them with
atomically :: STM a -> IO a. Under the hood the STM monad creates a
dependency graph of the used STM primitives (TVars) in order to know when
to undo/redo transactions. But from what I understand you'll pretty much
only need to use (atomically . readTChan c)/(atomically . writeTChan c)
which are in the IO monad
On 26 May 2014 11:01, Bulat Ziganshin
Hello Haskell-cafe,
can you please point me to any OSS implementation of IO Channels with priorities - i.e. data pushed to the Chan using high priority should be read prior to the data pushed with lower priority:
pushChan ch 1 'x' pushChan ch 2 'y' readChan ch >>= print -- prints 'y'
i've found only STM implementations - i don't know STM enough, may be i just need to convert STM to IO operations?
i don't expect strong guarantees, my algorithm will remain correct anyway. and i don't have lot of objects, it's just a few dozens
-- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Bulat!
It's great to see you here.
We haven't seen you in quite a while.
Regards,
Yitz
On Mon, May 26, 2014 at 12:01 PM, Bulat Ziganshin
Hello Haskell-cafe,
can you please point me to any OSS implementation of IO Channels with priorities - i.e. data pushed to the Chan using high priority should be read prior to the data pushed with lower priority:
pushChan ch 1 'x' pushChan ch 2 'y' readChan ch >>= print -- prints 'y'
i've found only STM implementations - i don't know STM enough, may be i just need to convert STM to IO operations?
i don't expect strong guarantees, my algorithm will remain correct anyway. and i don't have lot of objects, it's just a few dozens
-- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (4)
-
Andras Slemmer
-
Bulat Ziganshin
-
Felipe Lessa
-
Yitzchak Gale