コード例 #1
0
ファイル: WorkerThread.cpp プロジェクト: captainl1993/Mnet
//启动工作线程
	bool WorkerThread::Run()
	{
		do
		{
			//初始化管道
			if (!CreateNotifyFds())
				break;
			//初始化事件处理回调
			if (!InitEventHandler())
				break;
			try
			{
				shared_ptr_thread_.reset(new std::thread([this]
				{	event_base_loop(pthread_event_base_, 0);}));
			}
			catch (...)
			{
				break;
			}
			
			return true;
		}
		while (0);
		
		return false;
	}
コード例 #2
0
bool WorkerThread::Run()
{
	do{
		if(!CreateNotifyFds())
			break;
		if(!InitEventHandler())
			break;
		try{
		shared_ptr_thread_.reset(new std::thread([this]
			{event_base_loop(pthread_event_base_, 0);}
		));
		}catch(...)
		{
			break;
		}
		LOG(TRACE)<<"workerhread "<<thread_id_<<" run success";
		return true;
	}while(0);
	LOG(ERROR)<<"workerhread "<<thread_id_<<"run failed";
	return false;
}
コード例 #3
0
bool WorkerThread::Run()
{
	do{
		if(!CreateNotifyFds())
			break;
		if(!InitEventHandler())
			break;
		try{
			shared_ptr_thread_.reset(new std::thread([this]
													 {
                                                         pthread_info=this;//thread_local variable
														 event_base_loop(pthread_event_base_, 0);
													 }
										 ));
		}catch(...)
		{
			break;
		}
		return true;
	}while(0);
	return false;
}