
Daryoush Mehrtash wrote:
I am trying to learn more about concurrent applications in Haskell by studying an existing a real application source code. I would very much appreciate if you can recommend an application that you feel has done a good job in implementing a real time application in Haskell.
Yogurt[1], a MUD client, uses two threads: one to process input from the server and one to process input from the client. It uses an MVar to synchronize. All concurrency is located in module Network.Yogurt.Readline. Custard[2], a MUD server, uses several threads: * Server, maintaining MUD state * one that listens for incoming connections * per client, one that listens for client input * per client, one that listens for messages from Server It uses channels and message passing to synchronize. All concurrency is located in module Engine. [1] http://hackage.haskell.org/package/Yogurt [2] http://code.google.com/p/custard/ Hope this helps, Martijn.