static void * _timer(void *p) { for (;;) { skynet_updatetime(); CHECK_ABORT usleep(2500); } return NULL; }
static void * _timer(void *p) { struct monitor * m = p; for (;;) { skynet_updatetime(); CHECK_ABORT wakeup(m,m->count-1); usleep(2500); } return NULL; }
static void * _timer(void *p) { struct monitor * m = p; skynet_initthread(THREAD_TIMER); for (;;) { skynet_updatetime(); CHECK_ABORT wakeup(m,m->count-1); //usleep(2500); Sleep(2); } // wakeup socket thread skynet_socket_exit(); // wakeup all worker thread pthread_cond_broadcast(&m->cond); return NULL; }
// 定时器线程 static void _timer(void *p) { monitor *m = (monitor *)p; SNServer::Get()->ThreadInit(THREAD_TIMER); for (;;) { skynet_updatetime(); CHECK_ABORT; wakeup(m, m->count - 1); std::this_thread::sleep_for((std::chrono::milliseconds(10))); } // TODO :: 这里要退出SOCKET线程 // wakeup socket thread skynet_socket_exit(); // wakeup all worker thread m->cond.notify_all(); }