|Serializes object operations with transitions between layout types. |
|Type of an object. |
|Thread that acquired lov_object::lo_type_guard in an exclusive mode. |
lov object has particular layout type, determining how top-object is built on top of sub-objects. Layout type can change dynamically. When this happens, lov_object::lo_type_guard semaphore is taken in exclusive mode, all state pertaining to the old layout type is destroyed, and new state is constructed. All object methods take said semaphore in the shared mode, providing serialization against transition between layout types.
To avoid multiple `if' or `switch' statements, selecting behavior for the current layout type, object methods perform double-dispatch, invoking function corresponding to the current layout type.
Serializes object operations with transitions between layout types.
This semaphore is taken in shared mode by all object methods, and is taken in exclusive mode when object type is changed.