V4 beta Feb-9-2018 available now

 From:  Michael Gibson
8814.64 In reply to 8814.63 
Hi Marco,

re:
> But, besides the benchmark and "pipe" or any other command I simply wanted to talk about the
> problem of "non interruptable" things and "lost work" because of forced closing of Moi.

The regular commands built into MoI like Sweep, Fillet, Booleans, Extrude, etc... have all been created specifically to be interruptable. They avoid doing any calculation loops in their scripts, the only loops they do in a script file are event loops.

So with those commands you should not see problems like that.

Custom scripts are another matter, it's more likely that they will do calculations in loops because they don't have the careful separation between script and a factory back-end set up specifically for it that makes interruption and not blocking the UI possible.

So one thing you can do if you are very worried about not being able to interrupt something is to not run any custom commands and only use the built in ones, that would probably solve your problem.

I have an idea though that may help with custom commands too, I can probably make a few key methods like factory.calculate() return a script exception if the escape key is held down and the script has not waited for any events for a little while. That should probably force most scripts to exit without needing to rewrite their inner loops to be "interruption-aware". I'll give that a try for the next beta.

- Michael