Skip to content

@eao197 eao197 released this Jun 22, 2020

For the list of changes see the description of the release in Wiki.

Assets 6

@eao197 eao197 released this May 9, 2020 · 21 commits to master since this release

Various fixes for clang-10.

Assets 6

@eao197 eao197 released this Jan 17, 2020 · 26 commits to master since this release

There are two significant changes in v.5.7.0.

The first one is support for send-cases in select() function. Now select() can be used for sending a message to a mchain only when that mchain has a free room for a new message. For example:

using namespace so_5;

select(from_all().handle_n(1).total_time(250ms),
   send_case(ch, message_holder_t<MyMsg>::make(...),
      []{ std::cout << "MyMsg sent!" << std::endl; }));

In that case select() will wait until ch can accept a new instance of MyMsg, but no more than 250ms.

Note that there is a breaking change in the updated implementation of select(): there is no more case_ function for the definition of receive-cases for select(), it is renamed to receive_case(). It means that old code like that:

using namespace so_5;

select(from_all().handle_n(1),
   case_(ch1, ...),
   case_(ch2, ...),
   case_(ch3, ...));

should be rewritten that way:

using namespace so_5;

select(from_all().handle_n(1),
   receive_case(ch1, ...),
   receive_case(ch2, ...),
   receive_case(ch3, ...));

More info about the new feature of select() function can be found in the project's Wiki.

The second significant change in v.5.7.0 is a fix for a flaw of integration of enveloped messages into the message-dispatching mechanism with respect to agents those are hierarchical state machines with the usage of transfer_to_state() and suppress() features.

In the previous versions of SObjectizer-5 the triggering of transfer_to_state() and suppress() handlers lead to notification about message delivery (the envelope was informed about the handling of the envelope's payload) even if the payload was ignored by the target agent.

Version 5.7.0 fixes that behavior and an envelope now get notification about message delivery only if the payload is actually delivered to the target agent and isn't ignored by transfer_to_state() and suppress() handlers.

Assets 6
Jan 15, 2020
Second beta of SO-5.7.0 is fixed as tag
Jan 13, 2020
The first beta of SO-5.7.0 is fixed as tag

@eao197 eao197 released this Jan 9, 2020 · 58 commits to master since this release

It's just an incremental update with some internal fixes and without any user-visible additions nor changes.

Assets 6

@eao197 eao197 released this Sep 5, 2019 · 70 commits to master since this release

Extensible-select added in the form of new make_extensible_select() and add_select_cases() functions, and a new overload of select() function.

The implementation of prepared-select refactored. Now parallel/nested calls to select() for the same prepared-select are checked.

Some fixes in CMake-based build scripts.

Assets 6
Jul 15, 2019
Version bump to 5.6.0.2.
Jul 5, 2019
Fix implementation of message_holder_t.
May 21, 2019
Added tag v.5.6.0-rc1 for changeset d379698679e8
You can’t perform that action at this time.