Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/libcfa/concurrency/coroutine.c

    r39fea2f red235b6  
    6565        this.errno_ = 0;
    6666        this.state = Start;
    67         this.starter = this_coroutine;
     67        this.starter = NULL;
    6868        this.last = NULL;
    6969}
     
    171171                suspend();
    172172        }
    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         }
    188173}
    189174
Note: See TracChangeset for help on using the changeset viewer.