From 74417aa1cfe7ee15e2eda7615e5b0b04e26f6664 Mon Sep 17 00:00:00 2001 From: Tobias Markus Date: Sun, 15 Dec 2013 21:24:37 +0100 Subject: [PATCH] Speed improvement: Moving check online to different thread --- src/supertux/menu/addon_menu.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/supertux/menu/addon_menu.cpp b/src/supertux/menu/addon_menu.cpp index a3cc6d5fa10..e6ba6c577da 100644 --- a/src/supertux/menu/addon_menu.cpp +++ b/src/supertux/menu/addon_menu.cpp @@ -18,6 +18,7 @@ #include #include +#include #include #include "addon/addon.hpp" @@ -31,6 +32,12 @@ bool generate_addons_menu_sorter(const Addon* a1, const Addon* a2) return a1->title < a2->title; } +void check_online() // Shortcut to expensive function to be called by a thread +{ + AddonManager::get_instance().check_online(); +} + + } // namespace AddonMenu::AddonMenu() : @@ -132,7 +139,8 @@ AddonMenu::check_menu() { try { - AddonManager::get_instance().check_online(); + std::thread addonThread(check_online); + addonThread.join(); refresh(); set_active_item(index); }