Enhancement: Do not register new watchers if "free()" has been called
before
Change: Moved thread joins to shutdown method
Fix: Catch BaseException for startup as well