You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Consider adding a new kind of component task in addition to active, queued, and passive. This would be a component with a task, but no queue. This pattern is useful for blocking on external input, e.g., from a radio. Currently we have to implement this pattern as a passive component with an Os::Task member. It would be better to have a component kind in the model that explicitly declares this pattern. The function that runs on the thread could be pure virtual in the base class and implemented in the derived class.
More generally, we should deprecate the pattern of putting Os::Task members inside components. This pattern makes it impossible to use the FPP model to reason about concurrency. Ideally, every thread in the system should be represented by an active component instance or a task component instance.
The text was updated successfully, but these errors were encountered:
Consider adding a new kind of component
task
in addition to active, queued, and passive. This would be a component with a task, but no queue. This pattern is useful for blocking on external input, e.g., from a radio. Currently we have to implement this pattern as a passive component with anOs::Task
member. It would be better to have a component kind in the model that explicitly declares this pattern. The function that runs on the thread could be pure virtual in the base class and implemented in the derived class.More generally, we should deprecate the pattern of putting
Os::Task
members inside components. This pattern makes it impossible to use the FPP model to reason about concurrency. Ideally, every thread in the system should be represented by anactive
component instance or atask
component instance.The text was updated successfully, but these errors were encountered: