• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

TFS 1.2 Getting dispatcher_very_slow is it fine or its not?

henkas

Well-Known Member
Joined
Jul 8, 2015
Messages
993
Solutions
5
Reaction score
55
Code:
[12/10/2023 16:02:51] Execution time: 1634 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 16:11:13] Execution time: 1585 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 16:14:52] Execution time: 1561 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 16:16:06] Execution time: 1553 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 16:22:22] Execution time: 1628 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 16:40:32] Execution time: 1579 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 16:48:13] Execution time: 1553 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 16:49:45] Execution time: 1588 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 16:51:40] Execution time: 1576 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 16:52:42] Execution time: 1587 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 16:53:24] Execution time: 1581 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 16:55:53] Execution time: 1576 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 17:09:23] Execution time: 1561 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 17:12:40] Execution time: 1572 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 17:15:47] Execution time: 1559 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 17:29:40] Execution time: 1592 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 17:34:54] Execution time: 1668 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 17:51:20] Execution time: 1634 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 17:59:33] Execution time: 1605 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 18:05:11] Execution time: 1602 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 18:06:55] Execution time: 1596 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 19:44:25] Execution time: 2033 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 19:45:28] Execution time: 1744 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 20:25:43] Execution time: 1745 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 20:28:31] Execution time: 1595 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 20:29:52] Execution time: 1710 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
[12/10/2023 21:53:23] Execution time: 1645 ms - std::bind(mainLoader, argc, argv, &serviceManager) - main
Getting prints about very slow dispatcher and it points to a

C++:
int main(int argc, char* argv[])
{
    // Setup bad allocation handler
    std::set_new_handler(badAllocationHandler);

#ifndef _WIN32
    // ignore sigpipe...
    struct sigaction sigh;
    sigh.sa_handler = SIG_IGN;
    sigh.sa_flags = 0;
    sigemptyset(&sigh.sa_mask);
    sigaction(SIGPIPE, &sigh, nullptr);
#endif

    ServiceManager serviceManager;

    g_dispatcher.start();
    g_scheduler.start();
    #ifdef STATS_ENABLED
        g_stats.start();
    #endif

    g_dispatcher.addTask(createTask(std::bind(mainLoader, argc, argv, &serviceManager)));

    g_loaderSignal.wait(g_loaderUniqueLock);

    if (serviceManager.is_running()) {
        std::cout << ">> " << g_config.getString(ConfigManager::SERVER_NAME) << " Server Online!" << std::endl << std::endl;
#ifdef _WIN32
        SetConsoleCtrlHandler([](DWORD) -> BOOL {
            g_dispatcher.addTask(createTask([]() {
                g_dispatcher.addTask(createTask(
                    std::bind(&Game::shutdown, &g_game)
                ));
                g_scheduler.stop();
                g_databaseTasks.stop();
                g_dispatcher.stop();
            }));
            ExitThread(0);
        }, 1);
#endif
        serviceManager.run();
    } else {
        std::cout << ">> No services running. The server is NOT online." << std::endl;
        g_scheduler.shutdown();
        g_databaseTasks.shutdown();
        g_dispatcher.shutdown();
        #ifdef STATS_ENABLED
                g_stats.shutdown();
        #endif
    }

    g_scheduler.join();
    g_databaseTasks.join();
    g_dispatcher.join();
    #ifdef STATS_ENABLED
        g_stats.join();
    #endif
    return 0;
}
 
Back
Top