Menu

Version 5.5.18 Wish List

2016-07-30
2016-09-02
  • Yauheni Akhotnikau

    Please add features which you like to see in v.5.5.18 as replies to this topic.

     
  • Yauheni Akhotnikau

    Extended run-time monitoring and stats: an ability to collect info about event-handlers working time. This info can be very helpful for detecting situations when some event-handlers are working too long (or event hang forever).

    Note. With feature was in v.5.5.17's wish list, but it required a lot of work and was removed from scope of v.5.5.17.

     
    • Yauheni Akhotnikau

      Implemented in 5.5.18--dev-trunk branch.

       
  • Yauheni Akhotnikau

    Speed up of coops registration and deregistration operations. May be just as optimization for anonymous coops only.

     
  • Yauheni Akhotnikau

    A support for send_case for select function for mchains.

     
  • Yauheni Akhotnikau

    Special signals for run-time stats distribution: stats::messages::distribution_started and stats::distribution_finished. These signals simplify implementation of some stats listeners. For example first signal tells about new portion of run-time statistics and second tells about end of that portion.

     
    • Yauheni Akhotnikau

      Implemented in 5.5.18--dev-trunk branch.

       
  • Yauheni Akhotnikau

    It is good to have a run-time error on attempt to change agent state in state's on_enter/on_exit handler.

    For example this code is not good:

    class demo : public so_5::agent_t {
      state_t st_one{ this };
      state_t st_two{ this };
      ...
      virtual void so_define_agent() override {
        st_one.on_enter( [this]{ st_two.activate(); } );
        ...
      }
    };
    

    Such behaviour can lead to infinite recursion in on_enter/on_exit calls.

     
    • Yauheni Akhotnikau

      Implemented in 5.5.18--dev-trunk branch.

      NOTE. Attempt to change state when another state switch is in progress will throw an exception. But this excepton will lead to std::terminate if it is not handled in on_enter/on_exit handler. It is because on_enter/on_exit handlers must be noexcept functions.

       

Log in to post a comment.