Menu

SObjectizer v.5.6.0 TODOs

Yauheni Akhotnikau

TODO

New approach for coop reg and dereg operations

Coops must no have names. Operations for coop registration and deregistration must be fast and scalable.

Heavy usage of noexcept

Methods and functions which shouldn't throw exceptions must be marked via noexcept.

Compatibility breaking changes

Changes for abstract_message_box_t interface

A quote from mchain_template class implementation:

//! Actual implementation of pushing message to the queue.
/*!
 * \attention This method is marked as 'const' but it changes
 * state of the object. It is because this method is called
 * from do_deliver_message() and do_deliver_service_request() which
 * must be 'const'. It is a flaw in the mbox'es design but
 * this flaw must be fixed at different level (such as modification
 * of abstract_message_box_t interface).
 */

Spliting of build_tests.rb files

For support of cross-platform compilation build_tests.rb must be splited into tests_build.rb and tests_run.rb files.

disp_binder must be derived from atomic_refcounted

An intrusive smart pointer must be introduced instead of disp_binder_unique_ptr_t. It allows to write such code:

auto binder = create_private_disp(env)->binder();
coop.define_agent(binder)...;
coop.define_agent(binder)...;
coop.define_agent(binder)...;

coop_t instead of agent_coop_t

A more simple and compact name coop_t must be used instead of agent_coop_t. Old name agent_coop_t should be just a typedef for coop_t. Old name agent_coop_t should also be marked as deprecated.

More run-time monitoring parameters

Controlling the time spent in event-handlers

Could be useful for detection of agent's overloading and/or performance degradation.

POSTPONED OR DECLINED

DONE


Related

Wiki: Internals