diff --git a/clang/tools/driver/cc1depscan_main.cpp b/clang/tools/driver/cc1depscan_main.cpp index 66034443f1caf..bc98974289c3c 100644 --- a/clang/tools/driver/cc1depscan_main.cpp +++ b/clang/tools/driver/cc1depscan_main.cpp @@ -659,6 +659,9 @@ struct ScanServer { /// jobs to finish. void shutdown() { ShutDown.store(true); + // Unlock pidfile first so another daemon can spin up when it can't find + // the socket. + ::flock(PidFD, LOCK_UN); cc1depscand::unlinkBoundSocket(BasePath); // Clean up the pidfile when we're done. if (PidFD != -1)