void CTargetPlatformCoroutine::resume(CCoroutine *other) { if (other == this) return; // Tell the other guy to go. assert(other->state_); other->state_->signalToGo(); // Wait until someone tells us to go. assert(state_); state_->waitToGo(); }
Example 5: blocking call returns, resume calls waitToGo.