Changelog for sessions-2007.6.18
The most recent changes are at the top of this file.
2007-06-18
Rewrote the looping asynchronous stuff. There were problems with the
last idea which meant that at there was a global lock for the whole
loop. That has been elimitated by using an explicit chain rather
than a Chan. Also, some optimisations of the common case through the
loop. So performance is pretty good, and with +RTS -N2 -C10 -RTS, I
am seeing > 100% CPU load on a dual core box.
2007-06-17
Made sure loops were truely asynchronous. The problem here is that
to do this takes more time and hurts performance. For the tightest
loop (mkLoopS $ SendS IntS), this makes performance 2.5 times worse,
which isn't surprising when you consider the change in the number of
MVars accessed each time through the loop. The fix here was quite
different to how I'd imagined it (and documented in the paper).
2007-06-14
Initial release. Cabalised and uploaded to Hackage.