Changes in / [b3f9684c:d4da6886]
- Location:
- libcfa/src
- Files:
-
- 2 edited
-
concurrency/coroutine.hfa (modified) (1 diff)
-
exception.hfa (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/coroutine.hfa
rb3f9684c rd4da6886 37 37 // Anything that implements this trait can be resumed. 38 38 // Anything that is resumed is a coroutine. 39 trait is_coroutine(dtype T | IS_RESUMPTION_EXCEPTION(CoroutineCancelled, (T))) { 39 trait is_coroutine(dtype T 40 | is_resumption_exception(CoroutineCancelled(T), 41 CoroutineCancelled_vtable(T))) { 40 42 void main(T & this); 41 43 $coroutine * get_coroutine(T & this); -
libcfa/src/exception.hfa
rb3f9684c rd4da6886 125 125 #define VTABLE_ASSERTION(exception_name, parameters) \ 126 126 { VTABLE_TYPE(exception_name) parameters VTABLE_NAME(exception_name); } 127 128 // IS_EXCEPTION(exception_name [, (...parameters)])129 // IS_RESUMPTION_EXCEPTION(exception_name [, (parameters...)])130 // IS_TERMINATION_EXCEPTION(exception_name [, (parameters...)])131 // Create an assertion that exception_name, possibly with the qualifing parameters, is the given132 // kind of exception with the standard vtable with the same parameters if applicable.133 #define IS_EXCEPTION(...) _IS_EXCEPTION(is_exception, __VA_ARGS__, , ~)134 #define IS_RESUMPTION_EXCEPTION(...) _IS_EXCEPTION(is_resumption_exception, __VA_ARGS__, , ~)135 #define IS_TERMINATION_EXCEPTION(...) _IS_EXCEPTION(is_termination_exception, __VA_ARGS__, , ~)136 127 137 128 // All internal helper macros begin with an underscore. … … 243 234 _GLUE2(exception_name,_copy), ^?{}, \ 244 235 _CLOSE 245 246 #define _IS_EXCEPTION(kind, exception_name, parameters, ...) \247 kind(exception_name parameters, VTABLE_TYPE(exception_name) parameters)
Note:
See TracChangeset
for help on using the changeset viewer.