|
|
1.1 ! root 1: #include <stdio.h> ! 2: int workcount = 0; ! 3: ! 4: main() ! 5: { ! 6: int nwork, ch, work(); ! 7: ! 8: printf("Enter cycles of work to do: "); ! 9: /* scanf("%d",&nwork); */ ! 10: nwork = 1000; ! 11: ch = getc(CONSOLE); ! 12: printf("Got %c %d\n",ch,nwork); ! 13: resume(create(work,500,20,"worker",1,nwork)); ! 14: printf("Parent back from resume of child\n"); ! 15: while (1) ! 16: { ! 17: getc(CONSOLE); /* wait for <CR> from keyboard */ ! 18: printf("worker at # %d\n",workcount); ! 19: } ! 20: } ! 21: ! 22: work(ncycles) ! 23: { ! 24: int i; ! 25: printf("child starting, ncycles=%d...\n",ncycles); ! 26: for (i=1;i<=ncycles;i++) ! 27: { ! 28: docycle(i); /* do ith work cycle */ ! 29: workcount++; /* count it where parent can see it */ ! 30: } ! 31: } ! 32: ! 33: docycle(n) ! 34: int n; ! 35: { ! 36: int i; ! 37: for (i=0;i<n;i++); ! 38: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.