Similar things can be used for the various event loops.
If you were so inclined, you could write something that uses less dynamic memory allocation.
Now that I read that code, I think I should be moving some of this stuff to C++11, at least WRT rvalue-refs...