save works

This commit is contained in:
Rongsong Shen 2026-02-28 17:55:50 +08:00
parent b1faeb94b6
commit b748e30d20
35 changed files with 1247 additions and 2149 deletions

View file

@ -238,164 +238,6 @@ int kvmgr_iter(kvmgr_t* mgr, zarray_iter_skip_fn_t skipfn, xlist_t* l,
return rc;
}
int resmgr_init(resmgr_t* mgr, int nslots, int delta,
zarray_item_killer_t killer)
{
int rc = 0;
rc = kvmgr_init(&(mgr->resdef), string_hash_key, nslots, delta, killer);
if (rc < 0) {
return rc;
}
mgr->nshared = 0;
mgr->nunshared = 0;
return 0;
}
void resmgr_fini(resmgr_t* mgr)
{
kvmgr_fini(&(mgr->resdef));
mgr->nshared = 0;
mgr->nunshared = 0;
}
int32_t resmgr_add_res(resmgr_t* mgr, xce_resource_t* res)
{
int rc = 0;
rc = kvmgr_add(&(mgr->resdef), (void*)res->name, (void*)res);
if (rc < 0) {
return rc;
}
if (res->flags & XCE_RESF_SHARED) {
res->idx = mgr->nshared;
mgr->nshared++;
} else {
res->idx = mgr->nunshared;
mgr->nunshared++;
}
return rc;
}
xce_resource_t* resmgr_lockres(resmgr_t* mgr, char* resname, int op)
{
xce_resource_t* r = NULL;
r = (xce_resource_t*)kvmgr_lock(&(mgr->resdef), (void*)resname, op);
return r;
}
xce_resource_t* resmgr_lock_byid(resmgr_t* mgr, int idx, int op)
{
xce_resource_t* r = NULL;
r = (xce_resource_t*)kvmgr_lock_byid(&(mgr->resdef), idx, op);
return r;
}
void resmgr_del_res(resmgr_t* mgr, xce_resource_t* r)
{
kvmgr_del(&(mgr->resdef), (void*)r->name);
}
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);
}
typedef struct {
my_rwlock_t lock;
} xkvmgr_private_t;