
I have a daemon I need to build, and need to work out some design details I am having difficulty with. Here's what the design looks like right now When the daemon starts it creates an empty MVar and an empty TChan. Then it listens for a usrSIG1. when it gets one, it checks to see if the MVar is empty. If it is, it does some stuff to fill the MVar, which is then used to pass around state for a list of functions. These functions are always the same. After evaluating these functions, the TChan is checked. As long as the TChan has something in it, it populates an MVar and the same three functions are evaluated in the same order again. If the MVar is full, it creates another MVar of the same type and puts it in the TChan. Is this a sound design? Does it prompt any questions from you? Here's my question. If this is basically a sound design, I know I will need use forkIO. I'm not sure where. If this is not a sound design, please ask questions or give other feedback so I can make changes and restore sanity.