18 lines
335 B
C
18 lines
335 B
C
#include "interrupts.h"
|
|
#include "task.h"
|
|
|
|
uint16_t wait(void)
|
|
{
|
|
if (current_task->child == NULL)
|
|
return -1;
|
|
cli();
|
|
if (current_task->child->status == ZOMBIE)
|
|
current_task->child->status = STOPPED;
|
|
else
|
|
current_task->status = WAIT;
|
|
uint16_t child_pid = current_task->child->pid;
|
|
toris();
|
|
scheduler();
|
|
return child_pid;
|
|
}
|