Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2017, 23:33   #11
Aoizora
Заблокирован
 
Регистрация: 11.11.2016
Сообщений: 261
По умолчанию

Сделал функцию для получения единственного экземпляра потока, обслуживающего запросы.

Код:
inline QueryHandler& getQueryHandler()
{
    static QueryHandler h;
    return h;
}
Aoizora вне форума Ответить с цитированием
Старый 11.07.2017, 21:35   #12
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от Aoizora Посмотреть сообщение
Сделал функцию для получения единственного экземпляра потока, обслуживающего запросы.

Код:
inline QueryHandler& getQueryHandler()
{
    static QueryHandler h;
    return h;
}
Ну норм вариант да,
я от такими пользуюусь

Код:
 using runner_t    = std::shared_ptr<std::thread>;
    using runnerint_t = std::shared_ptr<std::atomic<bool>>;

    using runner_f_t  = std::function<void(const runnerint_t& should_int)>;

    //simple way to execute lambda in thread, in case when shared_ptr is cleared it will send
    //stop notify and join(), so I can ensure 1 pointer has only 1 running thread always for the same task
    inline runner_t startNewRunner(const runner_f_t& func)
    {
        auto stop = runnerint_t(new std::atomic<bool>(false));
        return runner_t(new std::thread(func, stop), [stop](std::thread* p)
        {
            stop->store(true);
            if (p)
            {
                if (p->joinable())
                    p->join();
                delete p;
            }
        });
    }
/
Внутри ф. исполнения нада проверять стоппер, типа while(!*stop)
Только нельзя указатель этот на самого себя в лябмду-исполнитель копировать как-либо, иначе, может получиться join самого себя.

Последний раз редактировалось alexzk; 11.07.2017 в 21:42.
alexzk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неправильно выводятся стили из-за PHP запроса Alex2213 PHP 1 18.07.2015 21:32
Программа работает неправильно. Настюня Помощь студентам 2 16.06.2012 18:34
Проблема с выполнением запроса к БД AgentSmit PHP 2 14.04.2011 02:13
Неправильно работает WinExec? TwiX Общие вопросы Delphi 2 26.11.2009 21:07
"подвисание" перед выполнением макроса Gavr Microsoft Office Excel 1 09.08.2009 15:31