save works

This commit is contained in:
Rongsong Shen 2026-03-02 12:14:30 +08:00
parent b748e30d20
commit f4b1ba4cd7
21 changed files with 373 additions and 324 deletions

View file

@ -537,14 +537,14 @@ typedef struct {
static size_t job_datasize(va_list ap)
{
size_t sz = sizeof(xce_job_t);
size_t sz = sizeof(job_t);
return sz;
}
static int job_init(meta_obj_t* obj, va_list ap)
{
xce_job_t* dst = RTTI_OBJ_TO_DATA(xce_job_t, obj);
job_t* dst = RTTI_OBJ_TO_DATA(job_t, obj);
job_private_t* priv = (job_private_t*)RTTI_OBJ_TO_PRIV(obj);
xce_job_t* src = va_arg(ap, xce_job_t*);
@ -552,22 +552,22 @@ static int job_init(meta_obj_t* obj, va_list ap)
return -EINVAL;
}
dst->jobid = src->jobid;
dst->submit = makeJobsub(src->submit);
dst->sub_time = src->sub_time;
dst->queue_time = src->queue_time;
dst->start_time = src->start_time;
dst->finish_time = src->finish_time;
MOVE_PTR(dst->pidinfo, src->pidinfo);
dst->state = src->state;
MOVE_PTR(dst->allocs, src->allocs);
MOVE_PTR(dst->accounts, src->accounts);
dst->run_time = src->run_time;
MOVE_PTR(dst->run_usage, src->run_usage);
MOVE_PTR(dst->exit_info, src->exit_info);
dst->ckptinfo = makeString(src->ckptinfo);
dst->pending_ctrl = src->pending_ctrl;
MOVE_PTR(dst->pend_reasons, src->pend_reasons);
dst->job.jobid = src->jobid;
dst->job.submit = makeJobsub(src->submit);
dst->job.sub_time = src->sub_time;
dst->job.queue_time = src->queue_time;
dst->job.start_time = src->start_time;
dst->job.finish_time = src->finish_time;
MOVE_PTR(dst->job.pidinfo, src->pidinfo);
dst->job.state = src->state;
MOVE_PTR(dst->job.allocs, src->allocs);
MOVE_PTR(dst->job.accounts, src->accounts);
dst->job.run_time = src->run_time;
MOVE_PTR(dst->job.run_usage, src->run_usage);
MOVE_PTR(dst->job.exit_info, src->exit_info);
dst->job.ckptinfo = makeString(src->ckptinfo);
dst->job.pending_ctrl = src->pending_ctrl;
MOVE_PTR(dst->job.pend_reasons, src->pend_reasons);
my_rwlock_init(&(priv->lock));
priv->refcount = 1;
@ -577,24 +577,24 @@ static int job_init(meta_obj_t* obj, va_list ap)
static void job_destroy(meta_obj_t* obj)
{
xce_job_t* j = RTTI_OBJ_TO_DATA(xce_job_t, obj);
job_t* j = RTTI_OBJ_TO_DATA(job_t, obj);
job_private_t* priv = (job_private_t*)RTTI_OBJ_TO_PRIV(obj);
dereference(j->submit);
dereference(j->ckptinfo);
dereference(j->job.submit);
dereference(j->job.ckptinfo);
/* FIXME: */
if (j->pidinfo != NULL) { }
if (j->job.pidinfo != NULL) { }
if (j->allocs != NULL) { }
if (j->job.allocs != NULL) { }
if (j->accounts != NULL) { }
if (j->job.accounts != NULL) { }
if (j->run_usage != NULL) { }
if (j->job.run_usage != NULL) { }
if (j->exit_info != NULL) { }
if (j->job.exit_info != NULL) { }
if (j->pend_reasons != NULL) { }
if (j->job.pend_reasons != NULL) { }
my_rwlock_fini(&(priv->lock));
memset(priv, 0x0, sizeof(*priv));
@ -616,7 +616,7 @@ static int job_reference(meta_obj_t* obj)
static void job_dereference(meta_obj_t* obj)
{
job_private_t* priv = (job_private_t*)RTTI_OBJ_TO_PRIV(obj);
xce_job_t* j = RTTI_OBJ_TO_DATA(xce_job_t, obj);
job_t* j = RTTI_OBJ_TO_DATA(job_t, obj);
uint64_t count;
my_rwlock_wlock(&(priv->lock));
@ -674,9 +674,10 @@ static typeinfo_t job_type = {
.unlock = (unlock_fn_t)job_unlock } }
};
xce_job_t* makeJob(xce_job_t* j)
job_t* makeJob(var jobmgr, xce_job_t* j)
{
xce_job_t* job = makeInstance(&job_type, j);
job_t* job = makeInstance(&job_type, j);
/* FIXME */
return job;
}