What concurrency model does automagic use?
I'm considering switching from tasker after years of use. Automagic looks like a pretty strong competitor with some desirable new features.
The biggest reason I want to leave tasker is its multitasking support -- or lack thereof. Only one action can run at a time, and sometimes if multiple tasks are doing Wait actions, nothing else can run. It's like all of tasker freezes up. There've been some bugfixes around this but problems persist, making me think the underlying algorithms are problematic.
Does automagic support true multitasking? I've done some tests that make me think it does, but I'd like to hear from you if possible, Martin. I've seen that inside one flow, only one action can run at a time, even if the logic branches, and I'm okay with that. It seems like separate flows don't interfere though -- is this correct?
concurrency model
Moderator: Martin
Re: concurrency model
Hi,
Different flows are executed independently in general, except for action Script to avoid concurrency problems with global variables. This should usually not be a problem or even noticeable except when you create scripts that use a long time to execute.
Regards,
Martin
Different flows are executed independently in general, except for action Script to avoid concurrency problems with global variables. This should usually not be a problem or even noticeable except when you create scripts that use a long time to execute.
Regards,
Martin
Re: concurrency model
Awesome! I can work with that. To clarify, an entire script block is run while holding a mutex? So I can work around it by breaking a script up if need be as a way of "yielding"?
Re: concurrency model
Oh, and does Script prevent execution of all other actions, or just other Scripts?
Re: concurrency model
Exactly, splitting the script into multiple scripts could be done but I recommend to keep scripts short and fast so it should not be noticeable at all. Other actions should not be blocked, except condition Expression which is mostly the same as a regular action Script.
Re: concurrency model
Awesome, that's exactly the detail I needed. Thanks! Now, to translate 4 years' worth of tasker profiles 
