can fParent be made a unique_ptr to be cleaned up when the thread object is destructed, so we don't need this OnQuit thing?