7.21 Adaptive locks
Cfengine treats all of its operations as transactions
which are locked. Locking prevents contention from competing processes
and it also places reasonable limits on the execution of the program.
The fact that operations are locked means that several cfengine
programs can coexist without problems. Two locking parameters control
the way in which operations can procure locks. The IfElapsed
parameter tells operations that they can only be performed if a
certain period of time has elapsed since the last time the action was
performed. This is anti-spamming protection. The ExpireAfter
parameter tells cfengine that no action should last more than a given
length of time. This is protection against hanging sub-processes.