Open danielballan opened 7 years ago
This is marked for "bluesky release N+1" but I would like to suggest that we try to get it into 0.11 (not 0.10 though!). Two NSLS-II beamlines are bumping against limitations in our current model for suspenders, and this would address them as well as massively simplify the RunEngine internals. I think I have it all in my head. We'll see what devils lurk in the details....
https://github.com/NSLS-II/bluesky/pull/541 also takes a stab at this. The main idea there is that while processing the pre/post plans of suspender (A) you should not ask any other suspenders if thy would like to suspend things or you get weirdly collated results where the pre and post plan of the second suspender to trip run in the middle of the pre plan of the first
The attempt in #541 was to refactor the _run
co-routine to run the pre/post plans in their own, un-suspendable, contexts.
I suspect the proposed design will make addressing this intercolation issue much simpler (just don't ask!)
Yes, I think that is true.
When approaching this, we should make sure to provide a path for this use case.
What happened with this issue?
I still think this is a good idea. Once #1125 is in (and it's close, just two tests left I think) it will be easier.
The design of this probably needs a Bluesky Enhancement Proposal to sort out.
This proposes a major rethink of Suspenders that makes them more flexible. It allows them to trip only if the user tries to do particular things. If the user is changing the temperature while the beam is dumped, that should be allowed. If the user is trying to trigger a CCD, that should cause suspension.
The interface between RunEngine and suspenders changes to something like: