4d8335ad75
This is a pretty big commit, so let's run through it in parts: - All of the userspace changes are to switch away from syscall_wait Mostly, this is to waitpid; some things were tweaked to do things "properly" instead of waiting for particular processes. Init has been fixed to do a proper spin wait. - syscall_wait is gone - as are its uses. newlib bindings have been using just waitpid for a while now. - waitpid now performs like a Unix waitpid - process reaping is no longer a "do this on next change thing": it happens when a process is waited on, like it should (That means we can have real zombies: terminated processes that have not yet been waited on) - Reparenting of children to init has been implemented, so you can fork-daemonize! Overall, this is pretty big... So I hope it doesn't break everything.
10 lines
172 B
C
10 lines
172 B
C
#include <syscall.h>
|
|
#include <sys/wait.h>
|
|
|
|
int main(int argc, char * argv[]) {
|
|
int pid = syscall_system_function(7, NULL);
|
|
int status;
|
|
wait(&status);
|
|
return status;
|
|
}
|