Subversion Repositories HelenOS

Rev

Rev 88 | 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
    }