TEST(CLThread, Normal2)
{
	bFlag1ForCLThread = false;
	bFlag2ForCLThread = false;
	
	CLThread *p = new CLThreadDriv(new CThreadFunctionForCLThread());

	EXPECT_TRUE((p->Run((void *)2)).IsSuccess());

	sleep(2);

	EXPECT_TRUE(bFlag1ForCLThread);
	EXPECT_TRUE(bFlag2ForCLThread);
}
TEST(CLThread, Normal)
{
	CLThread *p = new CLThreadDriv(new CThreadFunctionForCLThread(), true);

	EXPECT_FALSE((p->WaitForDeath()).IsSuccess());

	EXPECT_TRUE((p->Run((void *)2)).IsSuccess());

	EXPECT_FALSE((p->Run((void *)2)).IsSuccess());

	EXPECT_TRUE((p->WaitForDeath()).IsSuccess());

	EXPECT_TRUE(bFlag1ForCLThread);
	EXPECT_TRUE(bFlag2ForCLThread);
}
Exemple #3
0
int main()
{

    CLMyThreadPool *pool = new CLMyThreadPool(10);
    pool->InitThreadPool();

    sleep(2);

    CLThread* userThread = new CLThread(
			new CLExecutiveFunctionForMsgLoop(
			new CLMsgLoopManagerForSTLqueue(
			new CLUser(pool), "user_thread")), true);
			
	userThread->Run(0);
    userThread->WaitForDeath();
	return 0;
}
	virtual CLStatus Initialize(CLMessageLoopManager *pMessageLoop, void* pContext)
	{
		pMessageLoop->Register(1, (CallBackForMessageLoop)(&CLStressObserverForCLNonThreadForMsgLoop::On_1));

		pthread = new CLThread(new CLStressTester, true);
		EXPECT_TRUE(pthread->Run().IsSuccess());

		return CLStatus(0, 0);
	}
Exemple #5
0
int main() {
	
	CLThreadPool *threadPool = new CLThreadPool(1);
	
	threadPool->initThreadPool();

    sleep(2);

	CLThread* userThread = new CLThread(
			new CLExecutiveFunctionForMsgLoop(
			new CLMsgLoopManagerForSTLqueue(
			new CLMyUserMsgProcessor(1000), "user")), true);
			
	userThread->Run(0);

	userThread->WaitForDeath();

	return 0;
}
Exemple #6
0
int main()
{
	CLMessageQueueBySTLqueue *pQ = new CLMessageQueueBySTLqueue();
	
	CLThread *t = new CLThread(new CLAdder(new CLMsgLoopManagerForSTLqueue(new CLMyMsgProcessor, pQ)), true);
	t->Run(0);

	CLAddMessage *paddmsg = new CLAddMessage(2, 4);
	pQ->PushMessage(paddmsg);

	CLAddMessage *paddmsg1 = new CLAddMessage(3, 6);
	pQ->PushMessage(paddmsg1);

	CLAddMessage *paddmsg2 = new CLAddMessage(5, 6);
	pQ->PushMessage(paddmsg2);

	CLQuitMessage *pquitmsg = new CLQuitMessage();
	pQ->PushMessage(pquitmsg);

	t->WaitForDeath();

	return 0;
}
	CLStatus On_1(CLMessage *pm)
	{
		CLMsg1ForCLNonThreadForMsgLoop *p = dynamic_cast<CLMsg1ForCLNonThreadForMsgLoop*>(pm);
		EXPECT_TRUE(p != 0);

		g_for_on1++;

		if(g_for_on1 == count)
		{
			pthread->WaitForDeath();
			return CLStatus(QUIT_MESSAGE_LOOP, 0);
		}
		else
			return CLStatus(0, 0);
	}
Exemple #8
0
int main()
{
	CLMessageQueueBySTLqueue q;
	
	CLThread *t = new CLThread(new CLAdder, true);
	t->Run(&q);

	CLAddMessage addmsg(2, 4);
	q.PushMessage(&addmsg);

	CLAddMessage addmsg1(5, 4);
	q.PushMessage(&addmsg1);
	
	CLAddMessage addmsg2(2, 9);
	q.PushMessage(&addmsg2);

	CLQuitMessage quitmsg;
	q.PushMessage(&quitmsg);


	t->WaitForDeath();

	return 0;
}