mirror of
https://github.com/drasko/codezero.git
synced 2026-02-04 22:13:16 +01:00
exit() almost there.
- Implemented reasonable way to suspend task.
- A task that has a pending suspend would be interrupted
from its sleep via the suspender task.
- If suspend was raised and right after, task became about to sleep,
then scheduler wakes it up.
- If suspend was raised when task was in user mode, then an irq suspends it.
- Also suspends are checked at the end of a syscall so that if suspend was
raised because of a syscall from the task, the task is suspended before it
goes back to user mode.
- This mechanism is very similar to signals, and it may lead as a base for
implementing signal handling.
- Implemented common vma dropping for shadow vm object dropping and task exiting.
This commit is contained in:
@@ -32,7 +32,7 @@ int forktest(void)
|
||||
printf("PID: %d, my global: %d\n", myid, global);
|
||||
printf("-- PASSED --\n");
|
||||
out:
|
||||
while(1)
|
||||
;
|
||||
printf("PID: %d exiting...\n", myid);
|
||||
_exit(0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user