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); }
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); }
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; }
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; }
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; }
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; }