labscript-suite-temp-2 / lyse

lyse is an analysis framework. It coordinates the running of python analysis scripts on experiment data as it becomes availiable, updating plots in real time.
BSD 2-Clause "Simplified" License
0 stars 0 forks source link

Multi-shot routines run out of order #16

Closed philipstarkey closed 8 years ago

philipstarkey commented 9 years ago

Original report (archived issue) by Shaun Johnstone (Bitbucket: shjohnst, GitHub: shjohnst).


I have noticed that sometimes the multishot scripts will be run in a different order, rather than based on their position in the GUI.

At the moment I have 5 scripts in the multi-shot box, the first and last are turned off. Currently lyse is running the 3rd, then the 4th, then the 2nd. I recently made changes to the 4th, but I don't see why this would change the order they run in.

philipstarkey commented 9 years ago

Original comment by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).


I am able to reproduce. It seems to happen when multiple routines are selected and moved with the move up/move down buttons. The order on the screen changes as expected, but the execution order is neither the new or old order.

philipstarkey commented 9 years ago

Original comment by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).


Fix committed to krb fork for testing

philipstarkey commented 8 years ago

Original comment by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).


Merged in monashkrb/lyse (pull request #3)

Fixes #16 and #17

→ \<\<cset 8c50661a310fd63473b570b13e15f984a2ef15c0>>

philipstarkey commented 8 years ago

Original comment by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).


Fixes #16, routines not reordering correctly with GUI buttons.

Problem was confusing a passive transformation with an active transformation:

passive transformation: constructing a new list from a list of indices saying where in the old list each item should come from (what we were doing)

active transformation: constructing a new list out of a list of indices for where in the new list items in the old list should be moved to (what we should have been doing)

When a single routine was moved, this simply swapped it with the one above or below it and so a passive and active transformation of the order are identical. But for reordering multiple routines at once it gave the wrong result.

→ \<\<cset 681fce3d2c83a1a6bc405d2de2f6093b55a35414>>

philipstarkey commented 8 years ago

Original comment by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).


Merged in monashkrb/lyse (pull request #3)

Fixes #16 and #17

→ \<\<cset 8c50661a310fd63473b570b13e15f984a2ef15c0>>