vovbarrier
vovbarrier in shell scripts
While writing shell scripts, you may also find that the script
vovbarrier may be useful. For example, the following code is
also equivalent to a simple implementation of
clevercopy:
#!/bin/csh -f
VovInput $1 || exit $status
vovbarrier $1 $2
exit $status
VovBarrier in C and C++
RCPC is implemented with the procedure VovBarrier() that has been added to VIL, and with the tool vovbarrier. In both cases, the key argument is the action to be performed on the barrier, which is either "STOP" or "PROPAGATE".
There are three options for a tool to control change propagation on one of its
outputs:
- Call VovBarrier( ..., "STOP"); This does not invalidate the fanouts of the output file immediately, allowing time to erect a barrier so the output file is not invalidated by invalidating this tool.
- Call VovBarrier(..., "PROPAGATE"); This invalidates the fanouts of the output file immediately, but also erects a barrier so the output file won't be invalidated by invalidating this tool.
- Do not call VovBarrier(...); This invalidates the fanouts of the output file immediately, allowing the file to be invalidated in the future if this tool is invalidated.