Changeset 764e009 for src/libcfa/concurrency/coroutine.c
- Timestamp:
- Sep 19, 2017, 3:56:00 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- f980549
- Parents:
- 8f98b78 (diff), 39fea2f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/concurrency/coroutine.c
r8f98b78 r764e009 65 65 this.errno_ = 0; 66 66 this.state = Start; 67 this.starter = NULL;67 this.starter = this_coroutine; 68 68 this.last = NULL; 69 69 } … … 171 171 suspend(); 172 172 } 173 174 void __leave_coroutine(void) { 175 coroutine_desc * src = this_coroutine; // optimization 176 177 assertf( src->starter != 0, 178 "Attempt to suspend coroutine \"%.256s\" (%p) that does not have a starter.\n" 179 "Possible cause is a resume of a coroutine already destroyed or not yet constructed", 180 src->name, src ); 181 assertf( src->starter->state != Halted, 182 "Attempt by coroutine \"%.256s\" (%p) to suspend back to terminated coroutine \"%.256s\" (%p).\n" 183 "Possible cause is terminated coroutine's main routine has already returned.", 184 src->name, src, src->starter->name, src->starter ); 185 186 CoroutineCtxSwitch( src, src->starter ); 187 } 173 188 } 174 189
Note: See TracChangeset
for help on using the changeset viewer.