long long time_diff_ms(struct timespec start, struct timespec end) { return millisec_elapsed(diff_timespec(start, end)); }
void TheLife::LoadLife() { struct timespec start; struct timespec end; struct timespec diff; clock_gettime(CLOCK_MONOTONIC, &start); LogHandler::WriteLog(sLanguage->Get("LOG_LOAD_BEGIN")); pthread_t main, status; //Life Initialization sUI->lwin[0].buf[0] = 0x00; sUI->lwin[1].buf[0] = 0x00; // Init NCurses LogHandler::WriteLog(sLanguage->Get("LOG_LOAD_CURSES")); initscr(); start_color(); use_default_colors(); //noecho(); keypad(stdscr, true); // Init colors LogHandler::WriteLog(sLanguage->Get("LOG_LOAD_COLOR")); init_pair(1, 1, -1); init_pair(2, 2, -1); init_pair(3, 3, -1); init_pair(4, 4, -1); // Init UI LogHandler::WriteLog(sLanguage->Get("LOG_LOAD_UI")); Interface::Load(); sUI->SetHidden(false, WINDOW_CONSOLE); sUI->SetHidden(false, WINDOW_STATUS); // Init Player LogHandler::WriteLog(sLanguage->Get("LOG_LOAD_PLAYER")); FileHandler::PlayerInit(); // Init SIGWICH (Console change signal) to SigHandler LogHandler::WriteLog(sLanguage->Get("LOG_LOAD_SIGWINCH")); signal(SIGWINCH, TheLife::SigHandler); // Thread spawning LogHandler::WriteLog(sLanguage->Get("LOG_LOAD_TH_SPAWN")); pthread_create(&status, NULL, Thread::Status, NULL); pthread_create(&main, NULL, Thread::Run, NULL); LogHandler::WriteLog(sLanguage->Get("LOG_LOAD_TH_ADD")); sThread->AddThread(status); sThread->AddThread(main); LogHandler::WriteLog(sLanguage->Get("LOG_LOAD_TH_JOIN")); pthread_join(status,NULL); pthread_join(main, NULL); LogHandler::WriteLog(sLanguage->Get("LOG_LOAD_END")); clock_gettime(CLOCK_MONOTONIC, &end); diff = diff_timespec(start, end); Debug("Load took %lld milliseconds\n", millisec_elapsed(diff)); }