Merge branch 'charm' of charmgit:charm into charm
[charm.git] / examples / charm++ / fib / fib.ci
1 mainmodule fib {
2   mainchare Main {
3     entry Main(CkArgMsg* m);
4   };
5
6   chare Fib {
7     entry Fib(int n, bool isRoot, CProxy_Fib parent);
8     entry void calc(int n) {
9       if (n < THRESHOLD) atomic { respond(seqFib(n)); }
10       else {
11         atomic {
12           CProxy_Fib::ckNew(n - 1, false, thisProxy);
13           CProxy_Fib::ckNew(n - 2, false, thisProxy);
14         }
15         when response(int val)
16           when response(int val2)
17             atomic { respond(val + val2); }
18       }
19     };
20     entry void response(int val);
21   };
22 };