Lasso Soft Inc. > Home

[Thread_RWLock]

Creates a lock that can be used to control concurrent access to a shared resource such as a global server-wide variable or a file. This lock allows an unlimited number of process to read, but only one process can write to the shared resource.

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.

  • Syntax
  • Parameters
[Global: 'myLock' = (Thread_RWLock)]

[if: $myLock->(ReadLock: 1000)]
  ...
  [$myLock->(ReadUnlock)]
[/If]

[if: $myLock->(WriteLock: 1000)]
  ...
  [$myLock->(WriteUnlock)]
[/If]

Examples

See the Lasso 8 Language Guide for examples of how to use this tag. This tag is documented on page 91.

Tag Link [Thread_RWLock] Category Technical
Type Substitution Data Source Any
Support Preferred Version 6.0
Output Type Thread_RWLock Security Tag
Implementation LDML Sets Lasso 6.0

Please note that periodically LassoSoft will go through the notes and may incorporate information from them into the documentation. Any submission here gives LassoSoft a non-exclusive license and will be made available in various formats to the Lasso community.

LassoSoft Inc. > Home

 

 

©LassoSoft Inc 2015 | Web Development by Treefrog Inc | PrivacyLegal terms and Shipping | Contact LassoSoft