Size: a a a

2021 July 02

RM

Roy Mustang in C++ Together 2.0
Причем довольно подлая ситуация
источник

RM

Roy Mustang in C++ Together 2.0
Представим что Thread Pool не является владельцем spsc очереди (то есть, сама очередь лежит где то в другом месте), если очередь уничтожится раньше, чем класс тред пула освободит потоки, то это может привести к хуйне
источник

RM

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

RM

Roy Mustang in C++ Together 2.0
В принципе, если я сам реализую Job System, то я могу дать такую гарантию, но что если разработчики будут использовать свой тред пул с моей SPSC очередью
источник

RM

Roy Mustang in C++ Together 2.0
В общем, я пришел к выводу, что Job System должна содержать обычную queue очередь откуда будут выниматься таски и кормиться в Thread Pool причем пачками, а Thread Pool должен уже хранить SPSC очередь
источник

RM

Roy Mustang in C++ Together 2.0
Таким образом я могу регулировать переполнение кольцевого буффера в SPSC очереди
источник

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
Полагаю, что в этом нет необходимости, ведь Job System будет предоставлять функционал для распараллеливания тасков
источник

R

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

RM

Roy Mustang in C++ Together 2.0
Почему в этом тред пуле количество ядер получают таким образом?
https://github.com/nvpro-samples/vk_device_generated_cmds/blob/master/threadpool.cpp#L57
источник

RM

Roy Mustang in C++ Together 2.0
Почему не используется
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);

numCPU = sysinfo.dwNumberOfProcessors;
источник

AF

Aidar Fattakhov in C++ Together 2.0
hardware_concurrency отстой
источник

VD

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

AF

Aidar Fattakhov in C++ Together 2.0
он может вернуть 0
источник

AF

Aidar Fattakhov in C++ Together 2.0
и непонятно че возвращает вобще
источник

VD

Vlad Doc in C++ Together 2.0
Или количество физ ядер, а не потоков
источник

AF

Aidar Fattakhov in C++ Together 2.0
ну тут хрен его знает че тебе нужно
источник

RM

Roy Mustang in C++ Together 2.0
В смысле?
источник