mirror of
https://github.com/MaskRay/ccls.git
synced 2024-11-22 07:35:08 +00:00
correctly grabbing the ownership of index files. (#54)
This commit is contained in:
parent
73e500bc97
commit
6e8ba37ad0
@ -194,6 +194,13 @@ bool Indexer_Parse(DiagnosticsPublisher *diag_pub, WorkingFiles *working_files,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Grab the ownership
|
||||||
|
if (reparse) {
|
||||||
|
std::lock_guard<std::mutex> lock(vfs->mutex);
|
||||||
|
vfs->state[path_to_index].owner = g_thread_id;
|
||||||
|
vfs->state[path_to_index].stage = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (reparse < 2) {
|
if (reparse < 2) {
|
||||||
LOG_S(INFO) << "load cache for " << path_to_index;
|
LOG_S(INFO) << "load cache for " << path_to_index;
|
||||||
auto dependencies = prev->dependencies;
|
auto dependencies = prev->dependencies;
|
||||||
@ -207,11 +214,6 @@ bool Indexer_Parse(DiagnosticsPublisher *diag_pub, WorkingFiles *working_files,
|
|||||||
IndexUpdate update = IndexUpdate::CreateDelta(nullptr, prev.get());
|
IndexUpdate update = IndexUpdate::CreateDelta(nullptr, prev.get());
|
||||||
on_indexed->PushBack(std::move(update), request.is_interactive);
|
on_indexed->PushBack(std::move(update), request.is_interactive);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::lock_guard<std::mutex> lock(vfs->mutex);
|
|
||||||
VFS::State &state = vfs->state[path_to_index];
|
|
||||||
if (state.owner == g_thread_id)
|
|
||||||
state.stage = 0;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user