The signals code probably isn't applicable here.

My claim of incompatibility was a weak one, just that you needed to make a change in MainLoop which is related to the internal TornadoEventLoop implementation. Can the reference you need not be hidden in TornadoEventLoop, even as a mutable class variable or something (yeah, unpleasant, I know)

I'm not worried about leaks in the *EventLoop classes. Except for when running tests it would only ever make sense to have one event loop and you would keep it around for the whole time your application is running. (There can be multiple MainLoop instances served from the same *EventLoop instance, however)