x::vipobj::readlock
,
x::vipobj::writelock
,
x::vipobj::updatelock
, and
x::vipobj::handlerlock
all take the very
important template object as their sole required parameter.
Their constructor
blocks until it acquires the necessary locks.
Passing false
as an optional second parameter
results in an opportunistic locking attempt. An exception gets thrown
immediately if the lock cannot be acquired.