tetragon/windows: Support multiple programs from a single collection #3832
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR changes the way programs are loaded on Windows in order to support loading multiple programs from a single collection. Earlier implementation assumed one program per collection.
In Windows, a collection can be loaded only once per process. In that light, if a sensor had two programs from the same sys file, the loading of the second program would fail, as loading the collection second time around fails.
In the PR, we cache loaded collections by path and check the cache before loading a new collection. The second run will use the cached collection object and load the passed in program.