LINUX.ORG.RU

Обновился инструмент для работы с агентами в C++: SObjectizer 5.5.5

 , , ,


1

2

SObjectizer — это небольшой фреймворк для упрощения разработки многопоточных приложений на C++. SObjectizer позволяет создавать объекты-агенты, которые взаимодействуют друг с другом только посредством асинхронных сообщений. Сам SObjectizer берет на себя задачи диспетчеризации сообщений и предоставление агентам рабочего контекста для обработки получаемых сообщений.

Проект живет на SourceForge, распространяется под трехпунктной BSD-лицензией.

Версию 5.5.5 можно взять либо из секции Files на SF, либо из Svn-репозитория, либо из зеркала на GitHub.

Если говорить кратко, то в версии 5.5.5 появилось следующее:

  • вспомогательные шаблонные методы introduce_coop и introduce_child_coop, упрощающие создание и регистрацию коопераций;
  • возможность использования туплов в качестве типов сообщений;
  • фильтры для сообщений, которые позволяют анализировать содержимое сообщений и отбрасывать те из них, которые не интересны агенту получателю;
  • несколько новых примеров.

Так же подготовлены две новые части серии презентаций “Dive into SObjectizer-5.5”, более подробно рассказывающие о состояниях агентов и кооперациях агентов (все имеющиеся презентации собраны здесь).

Если интересны подробности, то сюда.

Отдельная благодарность Алексею Сырникову, как за помощь в подготовке этого релиза, так и за поддержку зеркала SObjectizer на GitHub-е.

★★★★★

В следующей версии 5.6 планируется нарушить совместимость с версией 5.5. Что дает возможность упростить какие-то вещи в использовании SObjectizer. Например, отказаться от использования so_define_agent().

Тут, вроде бы, кто-то говорил, что в SObjectizer «сложно врубиться». Можно упростить. И не только это. Нужно только определить, что вызывает сложности и недопонимание.

eao197 ★★★★★
() автор топика
19 августа 2015 г.
Ответ на: комментарий от cyanide_regime

Гм, заведите пул dirty-scheduler'ов. Как только диспетчер засечет что очереди голодают, то он просто отдает в dirty-scheduler низкоприоритетные таски (или таск).

В итоге появился диспетчер, в котором можно приоритетам назначать квоты. Выглядит сейчас это как-то так.

PS. Версия пока в разработке, релиз будет где-то через две-три недели, если все пойдет нормально.

eao197 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.