diff --git a/clang/tools/driver/cc1depscan_main.cpp b/clang/tools/driver/cc1depscan_main.cpp index 79a461f81f833..222daaafbed04 100644 --- a/clang/tools/driver/cc1depscan_main.cpp +++ b/clang/tools/driver/cc1depscan_main.cpp @@ -657,6 +657,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)