diff --git a/clang-tools-extra/clangd/index/remote/server/Server.cpp b/clang-tools-extra/clangd/index/remote/server/Server.cpp --- a/clang-tools-extra/clangd/index/remote/server/Server.cpp +++ b/clang-tools-extra/clangd/index/remote/server/Server.cpp @@ -72,6 +72,13 @@ "server-address", llvm::cl::init("0.0.0.0:50051"), llvm::cl::desc("Address of the invoked server. Defaults to 0.0.0.0:50051")); +llvm::cl::opt HotReloadFrequency{ + "hot-reload-frequency", + llvm::cl::desc("Delay between index hot reload checks (in seconds)"), + llvm::cl::init(90), + llvm::cl::Hidden, +}; + class RemoteIndexServer final : public v1::SymbolIndex::Service { public: RemoteIndexServer(clangd::SymbolIndex &Index, llvm::StringRef IndexRoot) @@ -328,9 +335,9 @@ return -1; } - std::thread HotReloadThread([&Index, &Status, &FS]() { + const auto RefreshFrequency = std::chrono::seconds(HotReloadFrequency); + std::thread HotReloadThread([&Index, &Status, &FS, &RefreshFrequency]() { llvm::vfs::Status LastStatus = *Status; - static constexpr auto RefreshFrequency = std::chrono::seconds(30); while (!clang::clangd::shutdownRequested()) { hotReload(*Index, llvm::StringRef(IndexPath), LastStatus, FS); std::this_thread::sleep_for(RefreshFrequency); diff --git a/clang-tools-extra/clangd/test/remote-index/pipeline_helper.py b/clang-tools-extra/clangd/test/remote-index/pipeline_helper.py --- a/clang-tools-extra/clangd/test/remote-index/pipeline_helper.py +++ b/clang-tools-extra/clangd/test/remote-index/pipeline_helper.py @@ -32,7 +32,7 @@ index_server_process = subprocess.Popen([ 'clangd-index-server', '--server-address=' + server_address, - args.index_file, args.project_root + '--hot-reload-frequency=3', args.index_file, args.project_root ], stderr=subprocess.PIPE)