diff --git a/src/bin/shell/commands.c b/src/bin/shell/commands.c index cd794ef..d457577 100644 --- a/src/bin/shell/commands.c +++ b/src/bin/shell/commands.c @@ -39,7 +39,7 @@ #include "shell.h" int commands(inputBuffer *data) { - int cPid = 0x0,i = 0x0; + int cPid = 0x0,i = 0x0,x = 0x0; if (data == NULL) return 1; if (data->args->arg == NULL) return 1; @@ -93,6 +93,20 @@ } } } + else if (memcmp(data->args->arg,"test3", 5) == 0) { + for (i=0x0;i<50;i++) { + cPid = fork(); + if (cPid == 0x0) { + printf("Pid: [%i:%i]\n",cPid,i); + for (x=0x0;x<100;x++) sched_yield(); + printf("Exiting!!!\n"); + exit(0x1); + } + else { + printf("Childs Pid: [%i]\n",cPid); + } + } + } else if (memcmp(data->args->arg,"echo",4) == 0) { for (i=1;iargc;i++) { printf("%s ",data->argv[i]); diff --git a/src/sys/kernel/sched.c b/src/sys/kernel/sched.c index 14586a3..7df19a2 100644 --- a/src/sys/kernel/sched.c +++ b/src/sys/kernel/sched.c @@ -176,7 +176,7 @@ if (_current->state > 0x0) { if (_current->oInfo.v86Task == 0x1) irqDisable(0x0); - + asm("cli"); memAddr = (uInt32)&(_current->tss); ubixGDT[4].descriptor.baseLow = (memAddr & 0xFFFF); ubixGDT[4].descriptor.baseMed = ((memAddr >> 16) & 0xFF); @@ -326,6 +326,9 @@ /*** $Log$ + Revision 1.24 2004/08/01 17:50:46 reddawg + Fixens + Revision 1.23 2004/07/29 21:32:16 reddawg My quick lunchs breaks worth of updates....