Size: a a a

2020 September 02

🦊

🦊fox.cpp in C++ Together 2.0
Т.е. отрицает существование и дает самим модулям ебаться с этим, возможно творя костыли.
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
Твоя архитектура наивна по отношению к многопоточности. Это так называется и никак иначе.
Вы заебали, в прошлый раз сделал на системе плагинов - обосрали и начал переделывать
источник

RM

Roy Mustang in C++ Together 2.0
Щас переделал и убрал плагины, опять не так
источник

RM

Roy Mustang in C++ Together 2.0
Давайте ваши предложения
источник

RM

Roy Mustang in C++ Together 2.0
Как делать? Создать в конфиге параметр, который укажет сколько потоков будет запущено на приложение? И к примеру, укажем 3 потока, дальше мы с помощью какого нибудь queue будем брать поток свободный и вызывать Update метод у классов модулей?
источник

A

Alex Ф-ф-фэils!🌠︙... in C++ Together 2.0
Roy Mustang
Как делать? Создать в конфиге параметр, который укажет сколько потоков будет запущено на приложение? И к примеру, укажем 3 потока, дальше мы с помощью какого нибудь queue будем брать поток свободный и вызывать Update метод у классов модулей?
да
источник

A

Alex Ф-ф-фэils!🌠︙... in C++ Together 2.0
asio::io_context например так вот и имеет такой параметр
источник

🦊

🦊fox.cpp in C++ Together 2.0
Я  тебе предлагал фундаментально избавится от update, внести per-event шины обновлений и повязать это всё на пул потоков.
источник

🦊

🦊fox.cpp in C++ Together 2.0
Впрочем, хрен с ним с update
источник

🦊

🦊fox.cpp in C++ Together 2.0
Я тебе уже рассказывал, почему единственная точка входа обновлений - говно подход.
источник

🦊

🦊fox.cpp in C++ Together 2.0
Roy Mustang
Как делать? Создать в конфиге параметр, который укажет сколько потоков будет запущено на приложение? И к примеру, укажем 3 потока, дальше мы с помощью какого нибудь queue будем брать поток свободный и вызывать Update метод у классов модулей?
И да, это должен быть не параметр конфига, а количество логических ядер - 1 системы
источник

A

Alex Ф-ф-фэils!🌠︙... in C++ Together 2.0
скушать ядра
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
И да, это должен быть не параметр конфига, а количество логических ядер - 1 системы
То есть, не спрашивая разработчика тупо запускать все потоки ядра?
источник

A

Alex Ф-ф-фэils!🌠︙... in C++ Together 2.0
норм
источник

A

Alex Ф-ф-фэils!🌠︙... in C++ Together 2.0
задокументировать это, разумеется
источник

🦊

🦊fox.cpp in C++ Together 2.0
Roy Mustang
То есть, не спрашивая разработчика тупо запускать все потоки ядра?
И ещё N потоков для I/O offload, где реактор ASIO крутить или что ты там собрался использовать
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
Я тебе уже рассказывал, почему единственная точка входа обновлений - говно подход.
Точка входа у меня не только Update, вот
источник

RM

Roy Mustang in C++ Together 2.0
Я переделал фреймворк, теперь один модуль может впихивать N классов в мапу
источник

RM

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

🦊

🦊fox.cpp in C++ Together 2.0
🦊fox.cpp
И ещё N потоков для I/O offload, где реактор ASIO крутить или что ты там собрался использовать
Тебе для вычислений нужны все доступные ядра и ещё одно ядро для того, чтобы ждать говно с перерывами на I/O
источник