Skip to content

Auto sync point before exclusive system despite *_ignore_deferred #17874

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

urben1680
Copy link
Contributor

@urben1680 urben1680 commented Feb 15, 2025

Objective

Fixes #17828

Exclusive systems are expected to see the effects of all precedent commands. This was previously not made sure of by the scheduler. This showed especially with *_ignore_deferred configurations.

Solution

Every edge that leads to an exclusive system will contain a sync point that are combined into one if needed.

There needs to be no extra sync point after the exclusive system because it can only queue commands in the global commands queue and that is flushed already in the ExclusiveFunctionSystem::run implementation.

Testing

See the new unit tests.
I did not add mirrored tests of those in the no_sync_edges and no_sync_chain modules below the new test because I think these are enough. Though I can add more if desired.

Migration Guide

I am not sure if this needs any. The API did not change and I can think up no scenario where someone would rely on absent sync points before exclusive systems.

@urben1680 urben1680 changed the title auto sync point before exclusive system despite ignore_deferred Auto sync point before exclusive system despite *_ignore_deferred Feb 15, 2025
@urben1680 urben1680 marked this pull request as draft February 15, 2025 22:11
@urben1680 urben1680 marked this pull request as ready for review February 15, 2025 22:20
Comment on lines +2195 to +2197
insert_resource.before_ignore_deferred(contains_resource),
another_with_deferred.before_ignore_deferred(contains_resource),
contains_resource,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess I could make a chain of three anonymous systems but I wanted to express here that two nodes have edges with contains_resource, not one between the two nodes and one between the latter and the exclusive system.

@urben1680
Copy link
Contributor Author

I think this approach has too many flaws, I will make a new PR when I fixed some issues I noticed.

@urben1680 urben1680 closed this Feb 16, 2025
@urben1680 urben1680 deleted the auto-sync-before-exclusive-system-despite-ignore-deferred branch February 16, 2025 16:01
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.

Unflushed commands before exclusive system when configured with *_ignore_deferred
1 participant