feat(scheduler-allocator-runner): declare the allocator plugin contract (task 1.2)

xce_sched_allocator_iface_t (optional accepts guard + plan_init/next/fini)
and the sched_allocator_run() entry point in sched/alloc_iter.h; the
plugin's const allocator_iface reference, forward-declared in plugin.h
with the picker_iface ownership rule. No plugin uses them yet.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-09-30 07:49:25 +00:00
parent 86ee3491dd
commit 31ad79d325
Signed by untrusted user: rshen
GPG key ID: 80533536B0EB651C
4 changed files with 54 additions and 3 deletions

View file

@ -7,7 +7,7 @@
- Done when the full scheduler suite builds and passes under ASAN with no plan generator taking a scheduler object, and the poisoned-core test shows identical plan sequences for parjob
- _Requirements: 6.1, 6.2_
- [ ] 1.2 Declare the allocator plugin contract and the plugin's reference to it
- [x] 1.2 Declare the allocator plugin contract and the plugin's reference to it
- Add the allocator contract (optional acceptance guard plus plan initialise / next / finish) next to the plan-iterator contract, and declare the framework allocation entry point there
- Add the plugin's reference to its allocator contract, documented with the same ownership rule as the job-picker contract: static storage in the plugin file, never freed by the registry, NULL for non-allocator plugins
- Done when the scheduler and its suite build and pass unchanged with the new declarations present and no plugin using them yet
@ -90,3 +90,7 @@
- Done when the suite and the audit are clean and item 4 is marked resolved
- _Depends: 4.2, 5.1_
- _Requirements: 6.3, 7.1, 7.4, 7.5_
## Implementation Notes
- Build/test only in the dedicated dir `src/build.alloc` (`bash src/tools/xce-build.sh scheduler asan build.alloc --jobs N --incremental`; baseline 90/90). Another session uses `src/xce.build`.
- Several white-box scheduler test targets run with `detect_leaks=0` because their fixtures are not torn down (`testsuite/meson.build:1756`); a leak summary from running such a binary directly is pre-existing, not a regression. New tests that assert "no leak" (3.3) need leak detection on for their own target.