Such a lock can be acquired by at most one thread at a time. Concurrent threads that attempt to get the same lock are queued. When the lock is released, it is granted to the thread standing first in line etc. Thread reentrant locks are given syntactic and implementational support in Oz. They are implemented as subtype of chunks.
E is an expression that evaluates to a lock.
The construct blocks until S is executed. If E is not a lock, then a type error is raised. E is a lock. Arrays Oz has arrays as chunk subtype. Operations on arrays are defined in module Array .