Example #1
0
long long time_diff_ms(struct timespec start, struct timespec end)
{
	return millisec_elapsed(diff_timespec(start, end));
}
Example #2
0
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));
}