async_function_called_twice.adl
1 program dependent.alpha { 2 async function finalize(x: u8) { 3 assert_eq(1u8, 1u8); 4 } 5 6 async transition t1() -> Future { 7 let f: Future = finalize(1u8); 8 return f; 9 } 10 11 async transition t2() -> Future { 12 let f: Future = finalize(1u8); 13 return f; 14 } 15 } 16 17 // --- Next Program --- // 18 19 import dependent.alpha; 20 21 program test.alpha { 22 async function finalize(f: Future) { 23 let x: u8 = f.0; 24 f.await(); 25 } 26 27 async transition t1() -> Future { 28 let f: Future = dependent.alpha/t1(); 29 return finalize(f); 30 } 31 32 async transition t2() -> Future { 33 let f: Future = dependent.alpha/t2(); 34 return finalize(f); 35 } 36 }