improve resmgr/jobmgr/qmgr/workermgr

This commit is contained in:
Rongsong Shen 2025-12-18 17:37:34 +08:00
parent 2362b32825
commit 8d78f0cbeb
12 changed files with 161 additions and 575 deletions

View file

@ -246,3 +246,91 @@ int resmgr_iter(resmgr_t* mgr, xlist_t* l, void* arg)
{
return kvmgr_iter(&(mgr->resdef), NULL, l, arg);
}
int qmgr_init(qmgr_t* mgr, int nslots, int delta, zarray_item_killer_t killer)
{
return kvmgr_init(&(mgr->queues), string_hash_key, nslots, delta, killer);
}
void qmgr_fini(qmgr_t* mgr) { kvmgr_fini(&(mgr->queues)); }
int qmgr_add(qmgr_t* mgr, queue_t* q)
{
return kvmgr_add(&(mgr->queues), (void*)q->queue.queue, q);
}
queue_t* qmgr_lockq(qmgr_t* mgr, char* name, int op)
{
return (queue_t*)kvmgr_lock(&(mgr->queues), (void*)name, op);
}
void qmgr_delq(qmgr_t* mgr, queue_t* q)
{
kvmgr_del(&(mgr->queues), (void*)q->queue.queue);
}
int qmgr_iter(qmgr_t* mgr, xlist_t* l, void* arg)
{
return kvmgr_iter(&(mgr->queues), NULL, l, arg);
}
int workermgr_init(workermgr_t* mgr, int nslots, int delta,
zarray_item_killer_t killer)
{
return kvmgr_init(&(mgr->workers), string_hash_key, nslots, delta, killer);
}
void workermgr_fini(workermgr_t* mgr) { kvmgr_fini(&(mgr->workers)); }
int workermgr_add(workermgr_t* mgr, worker_t* w)
{
return kvmgr_add(&(mgr->workers), (void*)w->host.name, w);
}
worker_t* workermgr_lock(workermgr_t* mgr, char* name, int op)
{
return (worker_t*)kvmgr_lock(&(mgr->workers), (void*)name, op);
}
worker_t* workermgr_lock_byid(workermgr_t* mgr, int idx, int op)
{
return (worker_t*)kvmgr_lock_byid(&(mgr->workers), idx, op);
}
void workermgr_del(workermgr_t* mgr, worker_t* w)
{
kvmgr_del(&(mgr->workers), (void*)w->host.name);
}
int workermgr_iter(workermgr_t* mgr, xlist_t* l, void* arg)
{
return kvmgr_iter(&(mgr->workers), NULL, l, arg);
}
int jobmgr_init(jobmgr_t* mgr, int nslots, int delta,
zarray_item_killer_t killer)
{
return kvmgr_init(&(mgr->jobs), int_hash_key, nslots, delta, killer);
}
void jobmgr_fini(jobmgr_t* mgr) { kvmgr_fini(&(mgr->jobs)); }
int jobmgr_add_job(jobmgr_t* mgr, job_t* j)
{
return kvmgr_add(&(mgr->jobs), (void*)j->job.jobid, j);
}
job_t* jobmgr_lockjob(jobmgr_t* mgr, uint64_t jobid, int op)
{
return (job_t*)kvmgr_lock(&(mgr->jobs), (void*)jobid, op);
}
void jobmgr_del_job(jobmgr_t* mgr, job_t* j)
{
kvmgr_del(&(mgr->jobs), (void*)j->job.jobid);
}
int jobmgr_iter(jobmgr_t* mgr, xlist_t* l, void* arg)
{
return kvmgr_iter(&(mgr->jobs), NULL, l, arg);
}