Tag Link | [Thread_RWLock] | Category | Threads |
---|---|---|---|
Type | Substitution | Source Available | Yes |
Support | Preferred | Version | 6.0 |
Change | Unchanged | Data Source | Any |
Output Type | Thread_RWLock | Security | Tag |
Implementation | LDML | Sets | Lasso 8.5, Lasso 8.0, Lasso 7.0, Lasso 6.0 |
Creates a lock that can be used to control concurrent access to a shared resource such as a global server
A read lock can be established using the [Thread_RWLock->ReadLock] tag or released using the [Thread_RWLock->ReadUnlock] tag. A write lock can be established using the [Thread_RWLock->WriteLock] tag or released using the [Thread_RWLock->WriteUnlock] tag.
A read/write lock allows many concurrent read accesses. However, if a write lock is requested it must wait until all current read accesses have been released before it is granted. Once a write lock is granted no read or write access will be granted until it is released.
Note: The use of thread tools is entirely voluntary. There is nothing in Lasso that prevents access to the same shared resource, but the diligent use of the thread tools will ensure predictable results.
[Global: 'myLock' = (Thread_RWLock)]
[if: $myLock->(ReadLock: 1000)]
...
[$myLock->(ReadUnlock)]
[/If]
[if: $myLock->(WriteLock: 1000)]
...
[$myLock->(WriteUnlock)]
[/If]
No Parameters Required.
See the Lasso 8 Language Guide for examples of how to use this tag.