- File:
-
- 1 edited
-
src/tests/coroutine/fibonacci.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/tests/coroutine/fibonacci.c
r71b50f36 raf1ed1ad 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // fibonacci.c -- 3-state finite-state machine 8 7 // fibonacci.c -- 9 8 // 10 9 // Author : Thierry Delisle 11 10 // Created On : Thu Jun 8 07:29:37 2017 12 11 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Fri Apr 27 08:55:31201814 // Update Count : 1 912 // Last Modified On : Thu Mar 22 22:45:44 2018 13 // Update Count : 15 15 14 // 16 15 … … 20 19 coroutine Fibonacci { int fn; }; // used for communication 21 20 22 void main( Fibonacci & fib ) with( fib ) { // called on first resume 21 void ?{}( Fibonacci & fib ) with( fib ) { fn = 0; } 22 23 // main automatically called on first resume 24 void main( Fibonacci & fib ) with( fib ) { 23 25 int fn1, fn2; // retained between resumes 24 26 fn = 0; fn1 = fn; // 1st case … … 27 29 suspend(); // restart last resume 28 30 for ( ;; ) { 29 fn = fn1 + fn2; fn2 = fn1; fn1 = fn; // general case31 fn = fn1 + fn2; fn2 = fn1; fn1 = fn; // general case 30 32 suspend(); // restart last resume 31 33 } // for
Note:
See TracChangeset
for help on using the changeset viewer.