struct proc remove dead field
All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m52s
All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m52s
This commit is contained in:
@@ -248,7 +248,7 @@ static struct proc* proc_find_sched (struct cpu* cpu) {
|
||||
|
||||
int state = proc->state;
|
||||
|
||||
if (!proc->dead && state == PROC_READY && !(proc->flags & PROC_KPROC)) {
|
||||
if (state == PROC_READY && !(proc->flags & PROC_KPROC)) {
|
||||
spin_unlock (&proc->lock, fp);
|
||||
return proc;
|
||||
}
|
||||
@@ -313,7 +313,6 @@ void proc_kill (struct proc* proc, struct reschedule_ctx* rctx) {
|
||||
if (cpu->proc_current == proc)
|
||||
cpu->proc_current = NULL;
|
||||
|
||||
proc->dead = true;
|
||||
rbtree_delete (&proc_tree, &proc->proc_tree_link);
|
||||
|
||||
spin_unlock (&proc->lock, fp);
|
||||
|
||||
@@ -43,7 +43,6 @@ struct proc {
|
||||
spin_lock_t lock;
|
||||
struct cpu* cpu;
|
||||
int state;
|
||||
bool dead;
|
||||
uintptr_t uvaddr_argument;
|
||||
void* mail_recv_buffer;
|
||||
size_t mail_recv_size;
|
||||
|
||||
@@ -762,8 +762,6 @@ DEFINE_SYSCALL (sys_get_exec_pid) {
|
||||
|
||||
/* wait_for_pid (int pid) */
|
||||
DEFINE_SYSCALL (sys_wait_for_pid) {
|
||||
uint64_t fp;
|
||||
|
||||
int pid = (int)a1;
|
||||
|
||||
struct proc* wait_proc = proc_find_pid (pid);
|
||||
@@ -771,15 +769,6 @@ DEFINE_SYSCALL (sys_wait_for_pid) {
|
||||
if (wait_proc == NULL)
|
||||
return SYSRESULT (-ST_NOT_FOUND);
|
||||
|
||||
spin_lock (&wait_proc->lock, &fp);
|
||||
|
||||
if (wait_proc->dead) {
|
||||
spin_unlock (&wait_proc->lock, fp);
|
||||
return SYSRESULT (-ST_NOT_FOUND);
|
||||
}
|
||||
|
||||
spin_unlock (&wait_proc->lock, fp);
|
||||
|
||||
proc_wait_for (proc, rctx, wait_proc);
|
||||
|
||||
return SYSRESULT (ST_OK);
|
||||
|
||||
Reference in New Issue
Block a user