static void test_taskmanager(void) { struct ymsglooper *ml0, *ml1; struct ymsghandler *mh0, *mh1; srand(time(NULL)); ml0 = ymsglooper_start_looper_thread(FALSE); mh0 = ymsghandler_create(ml0, NULL, NULL, NULL); /* use default handle */ ml1 = ymsglooper_start_looper_thread(FALSE); mh1 = ymsghandler_create(ml1, NULL, NULL, NULL); /* use default handle */ tc0(mh0, mh1); /* clean up all others */ ymsghandler_destroy(mh0); ymsghandler_destroy(mh1); ymsglooper_stop(ml0); ymsglooper_stop(ml1); while (YMSGLOOPER_TERMINATED != ymsglooper_get_state(ml0) || YMSGLOOPER_TERMINATED != ymsglooper_get_state(ml1)) usleep(10 * 1000); ymsglooper_destroy(ml0); ymsglooper_destroy(ml1); }
static void test_threadex(void) { struct ymsglooper *ml; struct ymsghandler *mh; srand(time(NULL)); ml = ymsglooper_start_looper_thread(FALSE); mh = ymsghandler_create(ml, NULL); /* use default handle */ tc1(mh); tc2(mh); tc3(mh); tc4(mh); /* clean up all others */ ymsghandler_destroy(mh); ymsglooper_stop(ml); while (YMSGLOOPER_TERMINATED != ymsglooper_get_state(ml)) usleep(10*1000); ymsglooper_destroy(ml); }