Skip to content
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

0-delay DataPort/SignalPort bypass precedence rules #221

Open
ghost opened this issue Jan 19, 2021 · 0 comments
Open

0-delay DataPort/SignalPort bypass precedence rules #221

ghost opened this issue Jan 19, 2021 · 0 comments
Assignees
Labels
bug Something isn't working component: sparta Issue is related to sparta framework

Comments

@ghost
Copy link

ghost commented Jan 19, 2021

If a user sets a precedence rule between two InPorts:

inport1_.precedes(inport2_);

and either port is a 0-cycle delay, the precedence rule is ignored. The is the result of a design decision to enable fast callbacks from an Inport to the receiver bypassing the scheduler (which ensures the order). The precedence rule is still checked, but the ordering on the scheduler is ignored.

The fix for this is to keep a small state in the Port class that a precedence rule was established on the port. If a rule was set AND the port is 0-cycle, it must use the scheduler to deliver its payload.

This does not affect SyncPort.

@ghost ghost added bug Something isn't working component: sparta Issue is related to sparta framework labels Jan 19, 2021
@ghost ghost self-assigned this Jan 19, 2021
@klingaard klingaard assigned klingaard and unassigned ghost Nov 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working component: sparta Issue is related to sparta framework
Projects
None yet
Development

No branches or pull requests

1 participant