> You can use wrappers which save the old signal handlers and install new
> ones which clean up after your plugins and return. Doing so, and thereby
> learning the hard way what "clean up after your plugins" entails (unless
> you were very careful designing and writing them in the first place), will
> teach you why nobody tries to automatically handle it for you. (In the
So unless I'm using something like Qt which can catch the signals and
run it's own code to call back to my code and then shut itself down,
I'm pretty much SOL.
Pretty much. And Qt only makes it a little easier; I think there are ways to do that with Haskell as well, but it doesn't necessarily earn you much aside from confusion if something goes wrong because of all the boundary crossings.