add ERROR_FREE sign, break task manager

This commit is contained in:
TXuian
2024-10-31 23:33:58 +08:00
parent ce727442de
commit 3d43cb9644
13 changed files with 197 additions and 113 deletions

View File

@@ -42,7 +42,8 @@ int sys_exit(struct Thread* ptask)
ptask->dead = true;
// free that task straightly if it's a blocked task
if (ptask->state == BLOCKED) {
xizi_task_manager.free_pcb(ptask);
struct TaskLifecycleOperations* tlo = GetSysObject(struct TaskLifecycleOperations, &xizi_task_manager.task_lifecycle_ops_tag);
tlo->free_pcb(ptask);
}
// yield current task in case it wants to exit itself
xizi_task_manager.task_yield_noschedule(cur_cpu()->task, false);