
john:
On Mon, Jul 04, 2005 at 12:06:11PM +0400, Bulat Ziganshin wrote:
Hello John,
Sunday, July 03, 2005, 11:16:30 PM, you wrote:
JM> have a screen update thread, this is the only one that will make curses JM> calls. JM> everything else communicates with the screen by modifying TVars holding JM> data values like so
in my own program i plan to use different approach. may it will be better for you too.
1) one thread that render screen 2) this thread receives commands via one Channel and immediately executes them
For what its worth, Yi uses an MVar on a buffer state to have a thread redraw the screen only when the buffer is actually modified. This works quite nicely: refreshLoop :: IO () refreshLoop = repeatM_ $ do takeMVar editorModified handleJust ioErrors (errorE.show) UI.refresh -- Don