Repository navigation
Conversation
Kernel bundles built from SYCL source can be stored in global or static caches and released after main() returns. Before: - Destroying a cached source-built bundle at process exit could abort in ProgramManager::removeImages() because its image tables had already been freed by the runtime jit_compiler destructor. - The runtime jit_compiler and the JIT library's JITContext were function-local static objects. When initialized after the user's cache, they could be destroyed first, leaving bundle cleanup with dangling image descriptors and an already-destroyed binary registry. After: - GlobalHandler owns the runtime jit_compiler and releases it after ProgramManager during late runtime shutdown, keeping image tables valid throughout user static destruction. - On non-Windows platforms, allocate JITContext lazily on the heap and delete it from a late JIT-library unload handler instead of ordinary static destruction. Cached bundles can unregister their images and destroy their code blobs while both owners are still alive. Add a regression test for both ordinary bundle destruction and cleanup from a static cache. Executing cached kernels in the cache destructor provides an additional check that the resources remain usable. Assisted-by: OpenCode (OpenAI GPT-6.1)
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Kernel bundles built from SYCL source can be stored in global or static caches and released after main() returns.
Before:
After:
Add a regression test for both ordinary bundle destruction and cleanup from a static cache. Executing cached kernels in the cache destructor provides an additional check that the resources remain usable.
Assisted-by: OpenCode (OpenAI GPT-6.1)