It's pretty critical that a function like this not reference the Twisted reactor.  The technique other places in the codebase has been to include "thd" in the name, e.g., `thd_getRawChanges`, indicating that it's run in a thread and special care should be taken.