Now, by default, there is no global state. It is created as part of bzrlib.smart.signals.install_sighup_handler(). That way, 99% of bzr commands won't care, only 'bzr serve' is affected. Further, the *test suite* won't have a by-product of tons of register/unregister calls that temporarily cache dicts and create garbage at runtime.