Registers builtin_fcfs at scheduler startup and makes it the default job_pick_plugin, replacing the hardcoded "xce_sched_fcfs" literal in sched_job_picker() with a fail-loud lookup through sched_resolve_job_picker(). The picker thread now branches legacy job_elect_fn plugins (delegated unchanged, preserving their self-contained wbuf-driven loop) from native xce_job_picker_iface_t pickers (driven by a new per-session loop), and the allocator now calls on_dispatch/on_pend for every picker as Req 1 AC 4 requires. Closes task 2.3's flagged picker/allocator concurrency race with a mutex on fcfs_plugin_data_t, and adds cancel points to next_job().
36 lines
852 B
Meson
36 lines
852 B
Meson
scheduler_srcs = [
|
|
'src/main.c',
|
|
'src/handler.c',
|
|
'src/scheduler.c',
|
|
'src/decision.c',
|
|
'src/schedobj.c',
|
|
'src/plugin.c',
|
|
'src/resource.c',
|
|
'src/plugins/fcfs.c',
|
|
'src/plugins/builtin_fcfs.c',
|
|
'src/plugins/seqjob_allocator.c',
|
|
'src/plugins/parjob_allocator.c',
|
|
'src/plugins/limit.c',
|
|
]
|
|
|
|
incdir = include_directories('src',
|
|
'include',
|
|
'../include',
|
|
'../lib')
|
|
|
|
scheduler_deps = [
|
|
libxce_dep,
|
|
librtti_dep,
|
|
math_dep,
|
|
tinylog_dep,
|
|
thread_dep
|
|
]
|
|
|
|
scheduler = executable('xce_scheduler',
|
|
scheduler_srcs,
|
|
include_directories: incdir,
|
|
dependencies: scheduler_deps,
|
|
link_args: wrap_link_args,
|
|
install: true)
|
|
|
|
subdir('testsuite')
|