Rev 89 | Rev 91 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 89 | Rev 90 | ||
---|---|---|---|
Line 42... | Line 42... | ||
42 | #include <proc/thread.h> |
42 | #include <proc/thread.h> |
43 | 43 | ||
44 | static void e(void *data) |
44 | static void e(void *data) |
45 | { |
45 | { |
46 | int i; |
46 | int i; |
47 | while(1) { |
47 | while(1) |
- | 48 | { |
|
48 | double e,d,le,f; |
49 | double e,d,le,f; |
49 | le=-1; |
50 | le=-1; |
50 | e=0; |
51 | e=0; |
51 | f=1; |
52 | f=1; |
52 | for(i=0,d=1;e!=le;d*=f,f+=1,i++) { |
53 | for(i=0,d=1;e!=le;d*=f,f+=1,i++) |
- | 54 | { |
|
53 | le=e; |
55 | le=e; |
54 | e=e+1/d; |
56 | e=e+1/d; |
55 | if (i>1000000) { |
57 | if (i>20000000) |
- | 58 | { |
|
56 | printf("tid%d: e LOOPING\n", THREAD->tid); |
59 | // printf("tid%d: e LOOPING\n", THREAD->tid); |
- | 60 | putchar('!'); |
|
57 | i = 0; |
61 | i = 0; |
58 | } |
62 | } |
- | 63 | ||
59 | } |
64 | } |
60 | 65 | ||
61 | if((int)(100000000*e)==271828182) printf("tid%d: e OK\n", THREAD->tid); |
66 | if((int)(100000000*e)==271828182) printf("tid%d: e OK\n", THREAD->tid); |
62 | else panic("tid%d: e FAILED (100000000*e=%d)\n", THREAD->tid, (int) 100000000*e); |
67 | else panic("tid%d: e FAILED (100000000*e=%d)\n", THREAD->tid, (int) 100000000*e); |
63 | } |
68 | } |
Line 72... | Line 77... | ||
72 | 77 | ||
73 | for (i=0; i<4; i++) { |
78 | for (i=0; i<4; i++) { |
74 | t = thread_create(e, NULL, TASK, 0); |
79 | t = thread_create(e, NULL, TASK, 0); |
75 | thread_ready(t); |
80 | thread_ready(t); |
76 | } |
81 | } |
- | 82 | ||
- | 83 | while(1); |
|
77 | 84 | ||
78 | } |
85 | } |