What's hard to do? (limit 100 words)
When experimenting with using the TickUntilOutput API, I realized that we have no way to coordinate with external blocks that also need to "tick" alongside the proc runtime (e.g. the external block(s) might feed external inputs that need to respond to outputs of the proc). I think similar applies to TickUntilBlocked.
This could be something like the AbstractProcMemoryModel or another proc runtime.
Current best alternative workaround (limit 100 words)
You need to Tick the runtime manually so that you can also tick the external C++ so the two stay synchronized and feed each other inputs/outputs.
Your view of the "best case XLS enhancement" (limit 100 words)
It would be nice to have a way to either inject callbacks around the proc runtime tick in these APIs, or @grebe proposed a mechanism to register external objects with a specific interface that could participate in the proc network advancement.
What's hard to do? (limit 100 words)
When experimenting with using the
TickUntilOutputAPI, I realized that we have no way to coordinate with external blocks that also need to "tick" alongside the proc runtime (e.g. the external block(s) might feed external inputs that need to respond to outputs of the proc). I think similar applies toTickUntilBlocked.This could be something like the
AbstractProcMemoryModelor another proc runtime.Current best alternative workaround (limit 100 words)
You need to
Tickthe runtime manually so that you can also tick the external C++ so the two stay synchronized and feed each other inputs/outputs.Your view of the "best case XLS enhancement" (limit 100 words)
It would be nice to have a way to either inject callbacks around the proc runtime tick in these APIs, or @grebe proposed a mechanism to register external objects with a specific interface that could participate in the proc network advancement.