Size: a a a

2021 July 02

VM

Vladimir M88 in C++ Together 2.0
и было бы неправильно, если бы одно решение одной команды проходило бы по тайм-лимитам
источник

VM

Vladimir M88 in C++ Together 2.0
а другое, идентичное по времени
источник

VM

Vladimir M88 in C++ Together 2.0
не прошло бы из-за того, что ОС отдала ядро погонять фоновой задаче
источник

R

Roman in C++ Together 2.0
источник

R

Roman in C++ Together 2.0
Еихини тегает кого-нибудь
источник

RM

Roy Mustang in C++ Together 2.0
Опа
источник

RM

Roy Mustang in C++ Together 2.0
какая та хуйня получается
источник

RM

Roy Mustang in C++ Together 2.0
Вот сижу думаю, как мне сделать так чтоб все логические вещи по таскам остались в Job System и Task Scheduler
источник

RM

Roy Mustang in C++ Together 2.0
а в тред пул как таска передавалась только std::function
источник

RM

Roy Mustang in C++ Together 2.0
вопрос в том, как потом из тред пула результат вытащить и определить к какому таску относится выполненный результат
источник

RM

Roy Mustang in C++ Together 2.0
Представим ситуацию, что мы в Job System передали задачу, там внутри он создаст некий Task объект в котором будет лежать std::function, когда вызовется Update, то задачи будут отданы тред пулу, и затем в том же Update мы из тред пула вытаскиваем результаты выполненных задач
источник

RM

Roy Mustang in C++ Together 2.0
Что можно реализовать чтоб как то сопоставить выполненные задачи с теми, что лежат в Job System
источник

RM

Roy Mustang in C++ Together 2.0
Ну типа мы из тред пула вытаскиваем некий результат, сравниваем какой то индекс и определяем, ага, это вот такая та задача была
источник

RM

Roy Mustang in C++ Together 2.0
Такая логика вынуждает меня хранить задачи в векторе
источник

RM

Roy Mustang in C++ Together 2.0
Хотя стоп, точно
источник

RM

Roy Mustang in C++ Together 2.0
Я же могу проверять, нужно ли разработчику возвращать результат, если нужно, то я помещаю задачу в очередь тред пула на выполнения (отдав ему только std::function), а затем эту задачу в самом Job System помещаю в вектор и жду ответа от тред пула
источник

RM

Roy Mustang in C++ Together 2.0
Хотя стоп, надо же еще как то тред пулу сказать какой индекс у таска
источник

RM

Roy Mustang in C++ Together 2.0
Может лямбда в лямбде?
источник

RM

Roy Mustang in C++ Together 2.0
Ну типа клиент присылает мне функцию, я оборачиваю ее в лямбду с индексом
источник

RM

Roy Mustang in C++ Together 2.0
получается, что тред пул по прежнему вызывает std::function, только внутри будет лежать лямбда наша, которая вызывает лямбду разработчика, но наша лямбда будет возвращать индекс задачи
источник