Task #9256: [EPIC] Use shared task resources in plugin code
As a plugin writer i want to be able to share task resources for reading
The tasking system should be able to allow resources to be shared between tasks if only read access is requested.
The following design should allow to implement this without a migration and in a backwards compatible way:
- reuse the reserved_resources_record ListField shared resources will be prefixed by "shared:" exclusive resources will be used as is
- dispatch will add another parameter "shared_resources" in a backwards compatible way
- workers will augment the list of in_use_resources with a flag if any previous task requested a resource exclusive
Note: shared access that was scheduled after exclusive access still needs to wait. That is, one task requesting exclusive access to a resource will introduce a barrier for all other tasks requesting the same resource in any way.