Add RAII wrappers for ORT Model Editor API types#1953
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds RAII (Resource Acquisition Is Initialization) wrappers for ONNX Runtime Model Editor API types and refactors the graph builder code to use these wrappers for improved resource management. Additionally, it removes mutex protection from the graph session cache based on the assumption that ort-genai execution is single-threaded.
Changes:
- Added RAII wrapper structs (OrtGraph, OrtModel, OrtValueInfo, OrtNode) in onnxruntime_api.h following the existing OrtOpAttr pattern
- Removed SessionCache struct and mutex from graph_session_cache_ in generators.h, replacing it with a simple unordered_map
- Refactored graph_builder.cpp Build() function to use std::unique_ptr for automatic resource cleanup instead of manual try/catch blocks
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| src/models/onnxruntime_api.h | Adds RAII wrapper structs for OrtGraph, OrtModel, OrtValueInfo, and OrtNode with custom delete operators for automatic cleanup |
| src/generators.h | Removes SessionCache struct with mutex, replaces with simple unordered_map based on single-threaded execution assumption |
| src/models/graph_executor.cpp | Removes mutex include and simplifies cache access after SessionCache removal |
| src/models/graph_builder.cpp | Refactors Build() to use RAII patterns with std::unique_ptr instead of manual try/catch exception handling |
|
@baijumeswani This is the follow-up PR to resolve your remaining comments in #1895. The pipeline failures may not related with my changes. My another PR #1952 meets the similar issue after I rebase the code to latest without any code changes. However, it passed before. |
The pipeline failures are because Hugging Face released |
baijumeswani
left a comment
There was a problem hiding this comment.
One small comment. Otherwise looks good.
No description provided.