Shared Tasks - By Object is one of the interactive graphs Understand can draw of your code — call trees, dependencies, control flow, and more.
Shared Tasks - By Object
Languages: AnyTargets: Objects
The shared tasks plugins find global objects accessed from multiple call trees, starting from the specified object
Architectures are used to tag the root functions definng the call trees. This graph runs on objects and references such architectures to highlight show the relevant call trees.
Architecture Structure
Working with multiple call trees means working with multiple root functions. To pass multiple entities to a plugin, the entities must be grouped together in an architecture. A simple architecture can have the format:
- Name of root architecture can be anything
- Any name containing the word tasks (case insensitive)
- function1()
- function2()
- Any name containing the word tasks (case insensitive)
The shared tasks plugins also support additional fields for the tasks. These fields are displayed on the graph under the task name, and in the table as columns. Currently supported fields are 'core' and 'priority'. A field can be used instead of an architecture name containing the word tasks.
- Name of root architecture can be anything
- Any name containing the the word core or priority (case insensitive)
- Field value like 1
- function1()
- Another field value like 2
- function2()
- Field value like 1
- Any name containing the the word core or priority (case insensitive)
Finally, the architecture can be used to identify functions that enable and disable interrupts. References protected by these functions (preceded by a call to the disable function and followed by a call to the enable function) are identified by the plugins. The naming pattern interrupt control is (ommitting the tasks):
- Name of root architecture can be anything
- name containing the word interrupt or the word control (case insensitive)
- any name here. This layer allows multiple pairs of interrupt functions
- enable
- enableFunction()
- disable
- disableFunction()
- enable
- any name here. This layer allows multiple pairs of interrupt functions
- name containing the word interrupt or the word control (case insensitive)
More documentation is available in the README ↗ file in the repository. See also the Shared Tasks solution, the interactive report and the related graph plugin for functions. Also related are concurrency plugins.
This variant is a plugin. It can be enabled/disabled from the Plugin Manager.