|
@@ -25,33 +25,3 @@ void *runner1(void *arg)
|
|
|
pthread_exit(0);
|
|
|
}
|
|
|
|
|
|
-int main(int argc, char **argv)
|
|
|
-{
|
|
|
-
|
|
|
- int i;
|
|
|
- pthread_t id[argc];
|
|
|
- pthread_attr_t attr;
|
|
|
- struct fibo d[argc];
|
|
|
-
|
|
|
- if (argc < 2) {
|
|
|
- printf("usage: %s num1 num2 num3... numN", argv[0]);
|
|
|
- return (1);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- pthread_attr_init(&attr);
|
|
|
- for (i = 1; i < argc; i++) {
|
|
|
- d[i - 1].limit = atoi(argv[i]);
|
|
|
- d[i - 1].answer = 0;
|
|
|
- pthread_create(&id[i - 1], &attr, runner1, &d[i - 1]);
|
|
|
- }
|
|
|
-
|
|
|
- for (i = 0; i < argc - 1; i++) {
|
|
|
- pthread_join(id[i], NULL);
|
|
|
- printf("\n\nFib of limit: %d is %d", d[i].limit, d[i].answer);
|
|
|
- }
|
|
|
-
|
|
|
- return (0);
|
|
|
-
|
|
|
-}
|