You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
VsChromium has 2 main components for synchronizing its index: one component keeps track of the file system structure (list of files and directories) and another keeps track of the contents of these files.
These 2 components are loosely coupled, so that both of them can end up aggressively (they both are multi-threaded) accessing the disk.
This does not happen when opening a "vs-chromium-project.txt" for the first time, because the file system scan happens on its own before the file contents loading can happen (the 2nd components needs to know what to load!).
However, this can happen with "incremental" changes. For example, when modifying a "vs-chromium-project-txt" multiple times with a few seconds interval can result in both components running in parallel.
The reason this can happen is that both components use distinct serialization queues to perform costly file system operations. So, while it is not possible for the file system scan component to run concurrently with itself, it can run concurrently with the file contents loading component.
The solution is to make both components use the same underlying queue, so file scan and file load are always serialized (long running, multi-threaded) operations.
The text was updated successfully, but these errors were encountered:
VsChromium has 2 main components for synchronizing its index: one component keeps track of the file system structure (list of files and directories) and another keeps track of the contents of these files.
These 2 components are loosely coupled, so that both of them can end up aggressively (they both are multi-threaded) accessing the disk.
This does not happen when opening a "vs-chromium-project.txt" for the first time, because the file system scan happens on its own before the file contents loading can happen (the 2nd components needs to know what to load!).
However, this can happen with "incremental" changes. For example, when modifying a "vs-chromium-project-txt" multiple times with a few seconds interval can result in both components running in parallel.
The reason this can happen is that both components use distinct serialization queues to perform costly file system operations. So, while it is not possible for the file system scan component to run concurrently with itself, it can run concurrently with the file contents loading component.
The solution is to make both components use the same underlying queue, so file scan and file load are always serialized (long running, multi-threaded) operations.
The text was updated successfully, but these errors were encountered: