Changeset 5456537 for libcfa/src
- Timestamp:
- Apr 26, 2021, 10:21:09 AM (3 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 8840228, df24d37
- Parents:
- aec68b6
- Location:
- libcfa/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/coroutine.cfa
raec68b6 r5456537 61 61 forall(T & | is_coroutine(T)) 62 62 void __cfaehm_cancelled_coroutine( 63 T & cor, $coroutine * desc, _EHM_VTABLE_TYPE(CoroutineCancelled)(T) & const _default_vtable) {63 T & cor, $coroutine * desc, EHM_DEFAULT_VTABLE(CoroutineCancelled, (T)) ) { 64 64 verify( desc->cancellation ); 65 65 desc->state = Cancelled; … … 145 145 // Part of the Public API 146 146 // Not inline since only ever called once per coroutine 147 forall(T & | is_coroutine(T) | { _EHM_VTABLE_TYPE(CoroutineCancelled)(T) & const _default_vtable; })147 forall(T & | is_coroutine(T) | { EHM_DEFAULT_VTABLE(CoroutineCancelled, (T)); }) 148 148 void prime(T& cor) { 149 149 $coroutine* this = get_coroutine(cor); -
libcfa/src/concurrency/coroutine.hfa
raec68b6 r5456537 60 60 //----------------------------------------------------------------------------- 61 61 // Public coroutine API 62 forall(T & | is_coroutine(T) | { _EHM_VTABLE_TYPE(CoroutineCancelled)(T) & const _default_vtable; })62 forall(T & | is_coroutine(T) | { EHM_DEFAULT_VTABLE(CoroutineCancelled, (T)); }) 63 63 void prime(T & cor); 64 64 … … 131 131 forall(T & | is_coroutine(T)) 132 132 void __cfaehm_cancelled_coroutine( 133 T & cor, $coroutine * desc, _EHM_VTABLE_TYPE(CoroutineCancelled)(T) & const _default_vtable);133 T & cor, $coroutine * desc, EHM_DEFAULT_VTABLE(CoroutineCancelled, (T)) ); 134 134 135 135 // Resume implementation inlined for performance 136 forall(T & | is_coroutine(T) | { _EHM_VTABLE_TYPE(CoroutineCancelled)(T) & const _default_vtable; })136 forall(T & | is_coroutine(T) | { EHM_DEFAULT_VTABLE(CoroutineCancelled, (T)); }) 137 137 static inline T & resume(T & cor) { 138 138 // optimization : read TLS once and reuse it -
libcfa/src/concurrency/thread.cfa
raec68b6 r5456537 80 80 81 81 forall(T & | is_thread(T) | IS_EXCEPTION(ThreadCancelled, (T)) 82 | { _EHM_VTABLE_TYPE(ThreadCancelled)(T) & const _default_vtable; })82 | { EHM_DEFAULT_VTABLE(ThreadCancelled, (T)); }) 83 83 void ?{}( thread_dtor_guard_t & this, 84 84 T & thrd, void(*cancelHandler)(ThreadCancelled(T) &)) { … … 159 159 //----------------------------------------------------------------------------- 160 160 forall(T & | is_thread(T) | IS_RESUMPTION_EXCEPTION(ThreadCancelled, (T)) 161 | { _EHM_VTABLE_TYPE(ThreadCancelled)(T) & const _default_vtable; })161 | { EHM_DEFAULT_VTABLE(ThreadCancelled, (T)); }) 162 162 T & join( T & this ) { 163 163 thread_dtor_guard_t guard = { this, defaultResumptionHandler }; -
libcfa/src/concurrency/thread.hfa
raec68b6 r5456537 80 80 81 81 forall( T & | is_thread(T) | IS_EXCEPTION(ThreadCancelled, (T)) 82 | { _EHM_VTABLE_TYPE(ThreadCancelled)(T) & const _default_vtable; })82 | { EHM_DEFAULT_VTABLE(ThreadCancelled, (T)); }) 83 83 void ?{}( thread_dtor_guard_t & this, T & thrd, void(*)(ThreadCancelled(T) &) ); 84 84 void ^?{}( thread_dtor_guard_t & this ); … … 127 127 // join 128 128 forall( T & | is_thread(T) | IS_RESUMPTION_EXCEPTION(ThreadCancelled, (T)) 129 | { _EHM_VTABLE_TYPE(ThreadCancelled)(T) & const _default_vtable; })129 | { EHM_DEFAULT_VTABLE(ThreadCancelled, (T)); }) 130 130 T & join( T & this ); 131 131 -
libcfa/src/exception.hfa
raec68b6 r5456537 64 64 _EHM_VIRTUAL_TABLE(exception_name, arguments, table_name) 65 65 66 #define EHM_TYPE_ID(exception_name) _EHM_TYPE_ID_TYPE(exception_name) 67 68 #define EHM_MATCH_ALL __cfa__parent_vtable 66 // EHM_DEFAULT_VTABLE(exception_name, (arguments)) 67 // Create a declaration for a (possibly polymorphic) default vtable. 68 #define EHM_DEFAULT_VTABLE(exception_name, arguments) \ 69 _EHM_VTABLE_TYPE(exception_name) arguments & const _default_vtable 69 70 70 71 // IS_EXCEPTION(exception_name [, (...parameters)])
Note: See TracChangeset
for help on using the changeset viewer.