Fix a bug with things destructing on the wrong threads.
Merge branch 'watchable_optimization' into daniel_directory_efficiency_without_incremental