C++ Вопрос Не работает Tick функция

Участник
Статус
Оффлайн
Регистрация
19 Апр 2020
Сообщения
1,169
Реакции[?]
313
Поинты[?]
151K
есть функция которая вызывает нативы движка rage, решил написать сюда потому что тред по гташке мертвый.
заранее извиняюсь за шапку, не знаю как можно было понятнее описать.
ее вызов выглядит примерно так:
C++:
if (ImGui::Button("clear ped tasks"))
{
    tick::thread_invoker::queue([]
        {
            auto ped = player::player_ped_id();
            ped::clear_ped_tasks_immediatly(ped)
        }
    );
}
сама она выглядит вот так:
tick.hpp:
#pragma once
#include <vector>
#include <sysinfoapi.h>
#include <functional>

namespace tick
{
    class thread_invoker
    {
    public:

        inline static void queue(std::function<void()> func)
        {
            funcs_to_invoke.emplace_back(std::make_pair(func, GetTickCount64()));
        }

        void on_tick()
        {
            auto current_tick = GetTickCount64();
            for (auto& funcs : funcs_to_invoke)
            {
                if (current_tick - funcs.second < 1000)
                {
                    funcs.first();
                }
            }

            funcs_to_invoke.clear();
        }
    private:
        inline static std::vector<std::pair<std::function<void()>, uintptr_t>> funcs_to_invoke;
    };

    inline thread_invoker pnative;
}
проблема состоит в том, что во время простого вызова этих нативов игру фризит на секунду за вызов одного натива.
дабы эта тема работала адекватно в сурсе валялась эта функция, и оно почему то на отрез отказывается их вызывать. при ее вызове ничего не происходит, все стопится на 14-ой строчке
я вообще от слова совсем не понимаю ее код, за исключением пары строк, и причину проблемы найти не могу.
буду очень благодарен если кто-то обьяснит как оно работает и что надо сделать чтобы оно работало.
Для просмотра содержимого вам необходимо авторизоваться.
 
c:\buildworker\csgo_rel_win64
Участник
Статус
Оффлайн
Регистрация
18 Окт 2022
Сообщения
598
Реакции[?]
212
Поинты[?]
140K
inline static std::vector<std::pair<std::function<void()>, uintptr_t>> funcs_to_invoke;
 
Сверху Снизу