Skip to content

Implement static executor entities collector#6

Merged
MartinCornelis2 merged 1 commit intonobleo:nobleo/feature/static_executorfrom
mauropasse:mauro/feature/static_executor_entities_collector
Mar 26, 2020
Merged

Implement static executor entities collector#6
MartinCornelis2 merged 1 commit intonobleo:nobleo/feature/static_executorfrom
mauropasse:mauro/feature/static_executor_entities_collector

Conversation

@mauropasse
Copy link
Copy Markdown

This PR makes changes to how the list of entities in the executable list is created and managed.

A new class is created, named StaticExecutorEntitiesCollector, that owns the executable list and has the responsibility to keep it up to date and use it to fill the memory strategy.

The StaticExecutorEntitiesCollector provides methods for refreshing the internal executable list whenever nodes are added or removed from the executor, or entities are added or removed from a node.
This class is derived from the Waitable class. This means that it can be added to an executor that will take care of executing the aforementioned methods whenever its required.

The StaticExecutorEntitiesCollector will wake up the executor whenever one of the following guard conditions is triggered:

  1. Nodes' guard condition
  2. Static executor interrupt guard condition

This results in refreshing the executable list whenever:

  1. A new node is added/removed to/from the static executor
  2. A new entity is added/removed to/from a node that is part of the static executor

@alsora
@dgoel

Signed-off-by: Mauro <mpasserino@irobot.com>
@alsora
Copy link
Copy Markdown

alsora commented Mar 24, 2020

This PR also fixes nobleo/static_executor#3

@MartinCornelis2 MartinCornelis2 merged commit f1335eb into nobleo:nobleo/feature/static_executor Mar 26, 2020
@mauropasse mauropasse deleted the mauro/feature/static_executor_entities_collector branch April 9, 2021 13:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants