Right now, our prediction checklist widget starts up a channel extraction thread each time an image is unchecked. This is done to ensure that the number of channels in the dropdown corresponds with the number of channels in at least one of the selected images. When a user rapidly unchecks images, multiple extraction threads will be going at the same time. In order to guarantee that the most recently started thread (i.e. the one corresponding to the currently selected images in the UI) is the only thread that will have UI effects, we interrupt the existing threads (telling them not to have any UI effects).
It would be preferable if we could do this in a way that does not rely on thread interrupts, because this is the only place in the code so far that such a pattern is necessary.
From conversation with @hughes036
Right now, our prediction checklist widget starts up a channel extraction thread each time an image is unchecked. This is done to ensure that the number of channels in the dropdown corresponds with the number of channels in at least one of the selected images. When a user rapidly unchecks images, multiple extraction threads will be going at the same time. In order to guarantee that the most recently started thread (i.e. the one corresponding to the currently selected images in the UI) is the only thread that will have UI effects, we interrupt the existing threads (telling them not to have any UI effects).
It would be preferable if we could do this in a way that does not rely on thread interrupts, because this is the only place in the code so far that such a pattern is necessary.