Name
lock
Synopsis
lockvarlocksub
Locks a variable or a subroutine. A lock on a variable is
maintained until the lock goes out of scope. If the variable is
already locked by another thread, the lock call blocks until the variable is
available. You can recursively lock the variable, which stays
locked until the outermost lock goes out of scope.
Note that locks on variables affect only other lock calls; they don’t prevent normal
access to a variable. Also, locking a container object (e.g., an
array) doesn’t lock each element of the container.
Locking a subroutine blocks any calls to the subroutine until the lock goes out of scope; no other thread can access the subroutine while the lock is in effect.