Пытаюсь сообразить простенький, многопоточное ядро игрового/или какого то другого движка.
В интернете и на хабре нашел пару старых статей, датированных 2009ым годом и на сайте интел абстрактное описание архитектуры.
В правильном ли я направлении копаю?
Состряпал такую вот схему
Менеджер состояния
Менеджер процесса
Процессы
Менеджер потоков
Менджер состояния хранит состояния процессов и занимается опросом процессов на обновление состояний с каждым тактом.
Менеджер процессов добавляет процессы в общий пул.
Менеджер потоков раскидывает пул по потокам, создавая очередь.
Менеджер процессов может инициировать извелечение любого процесса из очереди. Так он передает новое состояние процессов менеджеру состояния а так по его команде вызывается диструктор процессов.
Сами процессы, это по сути класс, который хранит id, некоторые доп параметры, в том числе и статус, а так же сам указатель на функцию, которая вызывается уже в run().
Пока все это слишком абстрактно написано, но не могу понять, как лучше все таки делать. может менеджер потоков сделать наследуемым от менеджера процессов, тем самым сделать один общий менеджер который умеет на ходу раскидывать по потокам функции. Обернуть пул процессов в контейнер а потом передать указатель процессу или передавать указатель на каждый процесс индивидуально?
з.ы. это такое хобби у меня