Rev 88 | Rev 90 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 88 | Rev 89 | ||
---|---|---|---|
Line 41... | Line 41... | ||
41 | #include <arch/smp/atomic.h> |
41 | #include <arch/smp/atomic.h> |
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 | while(1) { |
47 | while(1) { |
47 | double e,d,le,f; |
48 | double e,d,le,f; |
48 | le=-1; |
49 | le=-1; |
49 | e=0; |
50 | e=0; |
50 | f=1; |
51 | f=1; |
51 | for(d=1;e!=le;d*=f,f+=1) { |
52 | for(i=0,d=1;e!=le;d*=f,f+=1,i++) { |
52 | le=e; |
53 | le=e; |
53 | e=e+1/d; |
54 | e=e+1/d; |
- | 55 | if (i>1000000) { |
|
- | 56 | printf("tid%d: e LOOPING\n", THREAD->tid); |
|
- | 57 | i = 0; |
|
- | 58 | } |
|
54 | } |
59 | } |
55 | 60 | ||
56 | if((int)(100000000*e)==271828182) printf("tid%d: e OK\n", THREAD->tid); |
61 | if((int)(100000000*e)==271828182) printf("tid%d: e OK\n", THREAD->tid); |
57 | else panic("tid%d: e FAILED (100000000*e=%d)\n", THREAD->tid, (int) 100000000*e); |
62 | else panic("tid%d: e FAILED (100000000*e=%d)\n", THREAD->tid, (int) 100000000*e); |
58 | } |
63 | } |