This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
action:Semaphore_Lock [2017/05/18 20:56] JMichaelTX rewrite to add clarity and sections |
action:Semaphore_Lock [2019/08/24 20:43] JMichaelTX [Preventing Multiple Executions of One or More Macros] |
||
---|---|---|---|
Line 22: | Line 22: | ||
Occasionally there are cases where multiple macros can be triggered, or the same macro triggered again, before the other macros complete. This can sometimes cause a problem, which needs to be prevented. | Occasionally there are cases where multiple macros can be triggered, or the same macro triggered again, before the other macros complete. This can sometimes cause a problem, which needs to be prevented. | ||
- | **The primary purpose of using a //Semaphore Lock// is to prevent simultaneous macro executions.** | + | **The primary purpose of using a //Semaphore Lock// is to prevent simultaneous macro executions of the same, or related, macros.**\\ |
- | * To do this, just place a //Semaphore Lock// Action with the same Semaphore Name as the first action of each Macro that you wish to prevent executing simultaneously. | + | In order to achieve this: |
+ | * Place a //Semaphore Lock// Action (using the same Semaphore Name) as the first action of each Macro that you wish to prevent executing simultaneously. | ||
* The lock will remain in place preventing any other macros that try to execute until the first macro completes, or until you execute a Semaphore Unlock action. | * The lock will remain in place preventing any other macros that try to execute until the first macro completes, or until you execute a Semaphore Unlock action. | ||
+ | * You can also cause all additional macro instances to be immediately cancelled by setting a very short timeout (1 hundredth of a second) for the Semaphore Action. | ||
The //Semaphore actions// take a name, and different names can be used for different (independent) locks. | The //Semaphore actions// take a name, and different names can be used for different (independent) locks. |