Sat Mar 27 22:42:43 CET 2010 Tomas Janousek
* reveal: don't insert non-clients into the set of mapped windows
In xmonad-core, this fixes a small bug that caused doIgnored windows to get
into `mapped' and never be removed from there.
In the context of xmonad-contrib, this fixes a tremendous memory leak that
could be triggered by using MouseResizableTile and UrgencyHook at the same
time. MRT would create dummy windows that would get added to `mapped' by the
reveal call in `windows'. As these were not removed (removal from `mapped' is
filtered by `isClient'), they'd stay there forever and due to an inefficiency
in UrgencyHook would eat up all memory sooner or later.
Fun fact: this also triggered a bug in glibc after a few days such that
periodic signals + fork hangs whenever the program consumes more than a
certain amount of memory.
--
Tomáš Janoušek, a.k.a. Liskni_si, http://work.lisk.in/