Комментарии 7
А почему вы не воспользовались готовым FSM—решением типа того же Boost FSM?
Возможно по этому — habrahabr.ru/post/141477/
А если серьезно, то я с опаской отношусь к фреймворкам, особенно если они работают в многопоточной среде.
Любая недокументированная, или слабо документированная мелочь может привести к неправильному использованию и как результат к трудно обнаруживаемым ошибкам.
Любой такой фреймворк нужно досконально изучать и в первую очередь изучать на примерах.
А если серьезно, то я с опаской отношусь к фреймворкам, особенно если они работают в многопоточной среде.
Любая недокументированная, или слабо документированная мелочь может привести к неправильному использованию и как результат к трудно обнаруживаемым ошибкам.
Любой такой фреймворк нужно досконально изучать и в первую очередь изучать на примерах.
Ну… тот же бустец, например, — изрядно оттестированная вещь, используемая в продакшыне многих крупных проектов.
Ок, посыл статьи теперь понятен, спасибо.
Ок, посыл статьи теперь понятен, спасибо.
В моем примере, используется boost::function + boost::bind. Я считаю использование этих вещей здесь оправданным. Использование же обобщенного фреймворка конечных автоматов я считаю излишним.
Сложность такого фреймворка в разы превышает сложность моей предметной области.
Посыл статьи — показать проблемы многопоточности. Как фреймворк конечных автоматов поможет мне в илюстрации этих проблем?
Сложность такого фреймворка в разы превышает сложность моей предметной области.
Посыл статьи — показать проблемы многопоточности. Как фреймворк конечных автоматов поможет мне в илюстрации этих проблем?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Организация рабочих потоков: управление состоянием движка