
The two-part shutdown procedure for the housekeeper was not needed and caused problems if SIGINT wasn't raised. Since the main thread returns to the main function, a single shutdown function is all that the housekeeper needs to function. Moved all the shutdown related code into Housekeeper::stop to remove the waiting for the thread in the destructor.