App::connect_ui_events() doesn't try to join the flashing thread until all_tasks_finished is true. So an error in FlashRequest::write() before all destinations are marked finished resulted in an invisible error with the UI showing no progress. This fixes that by setting finished for each destination on error.
To reproduce the issue, run popsicle-gtk as a non-root user.
If the plan is to update Popsicle to using async in the GUI, perhaps this could be handled in a better way as part of that change.
App::connect_ui_events()
doesn't try to join the flashing thread untilall_tasks_finished
istrue
. So an error inFlashRequest::write()
before all destinations are marked finished resulted in an invisible error with the UI showing no progress. This fixes that by setting finished for each destination on error.To reproduce the issue, run
popsicle-gtk
as a non-root user.If the plan is to update Popsicle to using async in the GUI, perhaps this could be handled in a better way as part of that change.