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.