source: tests/exceptions/cancel/coroutine.cfa

Last change on this file was d00d581, checked in by Henry Xue <y58xue@…>, 3 months ago

Update exception tests to use new syntax

  • Property mode set to 100644
File size: 641 bytes
RevLine 
[1c01c58]1// Try cancelling a coroutine.
2
3#include <coroutine.hfa>
4
[d00d581]5exception internal_error {};
6vtable(internal_error) internal_vt;
[1c01c58]7
8coroutine WillCancel {};
9
10const char * msg(CoroutineCancelled(WillCancel) * this) {
11        return "CoroutineCancelled(WillCancel)";
12}
13
14void main(WillCancel & wc) {
15        printf("1");
[ecfd758]16        cancel_stack((internal_error){&internal_vt});
[1c01c58]17        printf("!");
18}
19
20int main(int argc, char * argv[]) {
21        WillCancel cancel;
22        try {
23                printf("0");
24                resume(cancel);
25                printf("4");
[b583113]26        } catchResume (CoroutineCancelled(WillCancel) * error) {
[1c01c58]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.