source: tests/exceptions/cancel/coroutine.cfa@ 91715ce1

ADT ast-experimental pthread-emulation qualifiedEnum
Last change on this file since 91715ce1 was d00d581, checked in by Henry Xue <y58xue@…>, 4 years ago

Update exception tests to use new syntax

  • Property mode set to 100644
File size: 641 bytes
Line 
1// Try cancelling a coroutine.
2
3#include <coroutine.hfa>
4
5exception internal_error {};
6vtable(internal_error) internal_vt;
7
8coroutine WillCancel {};
9
10const char * msg(CoroutineCancelled(WillCancel) * this) {
11 return "CoroutineCancelled(WillCancel)";
12}
13
14void main(WillCancel & wc) {
15 printf("1");
16 cancel_stack((internal_error){&internal_vt});
17 printf("!");
18}
19
20int main(int argc, char * argv[]) {
21 WillCancel cancel;
22 try {
23 printf("0");
24 resume(cancel);
25 printf("4");
26 } catchResume (CoroutineCancelled(WillCancel) * error) {
27 printf("2");
28 if ((virtual internal_error *)error->the_exception) {
29 printf("3");
30 }
31 }
32 printf("5\n");
33}
Note: See TracBrowser for help on using the repository browser.