Manage RIDs via id_alloc
All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m2s
All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m2s
This commit is contained in:
@@ -156,9 +156,17 @@ struct procgroup* procgroup_create (void) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!id_alloc_init (&procgroup->rid_alloc, PROCGROUP_RESOURCES_MAX)) {
|
||||
id_alloc_fini (&procgroup->vfs_handle_id_alloc);
|
||||
free (procgroup);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
procgroup->pgid = id_alloc (&pgid_alloc);
|
||||
|
||||
if (procgroup->pgid < 0) {
|
||||
id_alloc_fini (&procgroup->rid_alloc);
|
||||
id_alloc_fini (&procgroup->vfs_handle_id_alloc);
|
||||
free (procgroup);
|
||||
return NULL;
|
||||
}
|
||||
@@ -168,7 +176,9 @@ struct procgroup* procgroup_create (void) {
|
||||
procgroup->pd.cr3_paddr = mm_alloc_user_pd_phys ();
|
||||
procgroup->map_base = PROC_MAP_BASE;
|
||||
|
||||
if (proc_create_resource_mail (procgroup, 1) == NULL) {
|
||||
if (proc_create_resource_mail (procgroup) == NULL) {
|
||||
id_alloc_fini (&procgroup->rid_alloc);
|
||||
id_alloc_fini (&procgroup->vfs_handle_id_alloc);
|
||||
free (procgroup);
|
||||
return NULL;
|
||||
}
|
||||
@@ -224,7 +234,7 @@ static void procgroup_delete (struct procgroup* procgroup, struct reschedule_ctx
|
||||
|
||||
list_remove (resource_delete_list, &resource->delete_list_link);
|
||||
|
||||
proc_delete_resource (resource, rctx);
|
||||
proc_delete_resource (procgroup, resource, rctx);
|
||||
}
|
||||
|
||||
/* unlock VFS owned mountpoints */
|
||||
@@ -245,6 +255,7 @@ static void procgroup_delete (struct procgroup* procgroup, struct reschedule_ctx
|
||||
free (procgroup->tls.tls_tmpl);
|
||||
|
||||
id_alloc_fini (&procgroup->vfs_handle_id_alloc);
|
||||
id_alloc_fini (&procgroup->rid_alloc);
|
||||
id_free (&pgid_alloc, procgroup->pgid);
|
||||
|
||||
free (procgroup);
|
||||
|
||||
Reference in New Issue
Block a user