Changes

Line 2: Line 2:     
=== Synchronous vs asynchronous ===
 
=== Synchronous vs asynchronous ===
Most of MacroDroid actions take a minuscule amount of time to execute. But some actions such as HTTP request or a shell script action can take more time to execute. Some of these actions have an option to "Block next action until complete" in their configuration GUI. If this option is enabled the action will be executed asynchronously. That means that MacroDroid will start executing subsequent actions without any delay.
+
Most of MacroDroid actions take a minuscule amount of time to execute. But some actions such as HTTP request or a shell script action can take a significant time to complete. Some of these actions have an option to "Block next action until complete" in their configuration GUI. If this option is enabled subsequent actions will wait until this action completes before continuing. If the option is disabled the action will run asynchronously while other actions continue.
    
In conventional programming languages you would probably be able to pass a callback to call when the execution is complete to perform some other actions after the asynchronous action has completed (possibly even work with the data if the asynchronous action returned some), but because MacroDroid inner workings are rather arbitrary there is usually no such systematic option and you need to rely on different workarounds.
 
In conventional programming languages you would probably be able to pass a callback to call when the execution is complete to perform some other actions after the asynchronous action has completed (possibly even work with the data if the asynchronous action returned some), but because MacroDroid inner workings are rather arbitrary there is usually no such systematic option and you need to rely on different workarounds.