当前位置: 首页>>代码示例>>C++>>正文


C++ Coroutine::setStatus方法代码示例

本文整理汇总了C++中Coroutine::setStatus方法的典型用法代码示例。如果您正苦于以下问题:C++ Coroutine::setStatus方法的具体用法?C++ Coroutine::setStatus怎么用?C++ Coroutine::setStatus使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Coroutine的用法示例。


在下文中一共展示了Coroutine::setStatus方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: doWork

bool CoroutineManager::doWork(VarisEvent* event){
		Coroutine* cor;
		if((cor = event->getCoroutine())!=NULL &&( event->getListenEventType()&T_COROUTINE)){
			cor->setStatus(BUSY);
			runCorEvent(event);
			return true;
		}
		//no coroutine free
		if(freeCoroutine_.empty()){
			return false;
		}
	if(!(event->getListenEventType()&T_COROUTINE)){
			int tmpCoroutine = freeCoroutine_.top();
			freeCoroutine_.pop();
			ucontext_t* context = coroutines_[tmpCoroutine].getContext();
			context->uc_link = coroutines_[0].getContext();
			Coroutine* coroutine = &(coroutines_[tmpCoroutine]);
			coroutine->setStatus(READY);
			event->setCoroutine(coroutine);
			makecontext(context,(corfunc)(VarisEvent::handle),1,event);
			runCoroutine(tmpCoroutine);
			return true;
	}
	return false;

}
开发者ID:cheeseH,项目名称:varisev,代码行数:26,代码来源:coroutinemanager.cpp

示例2: onCoroutineFinished

//notice
void CoroutineManager::onCoroutineFinished(CoroutineManager* th){
	while(true){
		Coroutine cor = th->coroutines_[th->curCoroutine_];
		cor.setStatus(FREE);
		th->freeCoroutine_.push(th->curCoroutine_);
		th->curCoroutine_ = 0;
		th->runCoroutine(1);
	}
}
开发者ID:cheeseH,项目名称:varisev,代码行数:10,代码来源:coroutinemanager.cpp


注:本文中的Coroutine::setStatus方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。