Link parkin': Events Can Make Sense, by Max Krohn, Eddie Kohler, and Frans Kaashoek.
Events have earned a reputation for confounding programmers. This work advocates new language features (called tame extensions) that simplify event programming in languages such as C++. Like multithreaded programs but unlike typical event programs, tamed programs use standard control flow constructs, and automatically-managed local variables. In practice, tame is implemented with a C++ source-to-source translator, without compiler modifications, platform-specific support, significant runtime overhead or major semantic compromises. The implementation is backwards-compatible with an existing event library and has already found application in class projects, open-source projects, and production Web sites. Developers on these projects report that the tame approach is a significant improvement over the event-driven status quo.
[Via Hack the Planet]