Exemple #1
0
ANKI_TEST(Util, Threadpool)
{
	const U32 threadsCount = 4;
	const U32 repeat = 5;
	Threadpool* tp = new Threadpool(threadsCount);

	TestJobTP jobs[threadsCount];

	for(U32 i = 1; i < repeat; i++)
	{
		U32 iterations = rand() % 100000;

		for(U32 j = 0; j < threadsCount; j++)
		{
			jobs[j].in = i;
			jobs[j].iterations = iterations;

			tp->assignNewTask(j, &jobs[j]);
		}

		ANKI_TEST_EXPECT_NO_ERR(tp->waitForAllThreadsToFinish());

		for(U32 j = 0; j < threadsCount; j++)
		{
			ANKI_TEST_EXPECT_EQ(jobs[j].in, i + iterations);
		}
	}

	delete tp;
}
Exemple #2
0
void threadPoolTest(){
    Threadpool* pt = new Threadpool(3);
    pt->Start();
    for (int i =0; i < 20; i += 3){
        Task* tmp = new CMTask(i);
        pt->AddTask(tmp);
    }
    sleep(10);
}
void WordQueryServer::onMessage(const TcpConnectionPtr & conn)
{
	string msg(conn->receive());
	size_t pos = msg.find('\n');
	msg = msg.substr(0, pos);
	cout << "client:" << msg << ",size:" << msg.size() << endl;

	//string ret = _wordQuery.doQuery(msg);
	//cout << "result's size:" << ret.size() << endl;
	//conn->send(ret);

	_pool.addTask(std::bind(&WordQueryServer::doTaskThread, this, conn, msg));
}
Exemple #4
0
void ServerModule::Init(const string& conf)
{
    
    try
    {
        PropertyConfigurator::configure("servermodule/ServerModulelog.conf");
    }
    catch(std::exception& e)
    {
        LOG4CXX_FATAL(logger, "exception:%s "<< e.what());
        return;
    }
    logger = log4cxx::LoggerPtr(log4cxx::Logger::getLogger("ServerModule"));


    LOG4CXX_DEBUG(logger, "server module initi, conf"<<conf);
    
    pool.RegistersJob(std::tr1::bind(&ServerModule::myjob, this, std::tr1::placeholders::_1));


}
Exemple #5
0
void ServerModule::Run()
{
    LOG4CXX_DEBUG(logger, "server module run");
    pool.Start(22222);
}
void WordQueryServer::start()
{
	_pool.start();
	_tcpServer.start();
}