示例#1
0
void PCCoreStop(struct ST_ProtocolEngine* pProtocolEngine)
{
	pProtocolEngine->pPCCore->coreStatus = eIMnetCoreStop;
	
#ifdef AMOS_DEBUG
	AMPrintf("noble:PCCoreStop <<<<< reader\n");
#endif

	//close looper.
	LoopStop(pProtocolEngine->pPCCore->pReaderQueue, 
		&pProtocolEngine->pPCCore->pReaderLooper->semaphore);

#ifdef AMOS_DEBUG
	AMPrintf("noble:PCCoreStop <<<<< sender\n");
#endif

	LoopStop(pProtocolEngine->pPCCore->pSenderQueue, 
		&pProtocolEngine->pPCCore->pSenderLooper->semaphore);
	
#ifdef AMOS_DEBUG
	AMPrintf("noble:PCCoreStop <<<<< callback\n");
#endif

	LoopStop(pProtocolEngine->pPCCore->pCallbackQueue, 
		&pProtocolEngine->pPCCore->pCallbackLooper->semaphore);

#ifdef AMOS_DEBUG
	AMPrintf("noble:PCCoreStop <<<<< quit\n");
#endif

}
void *SendMessageThread(void *args) {
	struct Handler *handler = (struct Handler *)args;
	struct Message *m = ObtainMessage(handler);
	m->what = 0x01;
	SendMessage(handler, m);
	sleep(1);
	LoopStop(handler->loop);
}
示例#3
0
        bool
CLxItemSelection::LoopNext (
        CLxUser_Item		&item)
{
        if (tmp_idx < tmp_list.size ())
                return item.set (tmp_list[tmp_idx++]);

        LoopStop ();
        return false;
}
void *CollectThread(void *args) {
	struct Handler *handler = (struct Handler *)args;
	int i = 0;
	for (i = 0; i < THREAD_NUM; i ++) {
		pthread_join(t[i], NULL);
	}
	EndTime();
	PassTime();

	LoopStop(handler->loop);
}
void *SingleHandlerSub(void *args) {
	struct TestObj *obj = (struct TestObj *)args;
	struct Handler *handler = obj->handler;
	int i = 0;
	StartTime();
	for (i = 0; i < 0xFFFFF; i ++) {
		struct Message *m = ObtainMessage(handler);
		m->what = i;
		m->obj = (void *)obj->context;
		SendMessage(handler, m);
	}
	LoopStop(handler->loop);
}