7.6 Discarding a Speculation

You discard speculations by using the discard
function. When a speculative buffer is discarded, its contents are
also discarded. If the speculation has only been active on the CPU
calling discard, the buffer is immediately
available for subsequent calls to speculation.
If the speculation has been active on more than one CPU, the
discarded buffer will be available for subsequent
speculation some time after the call to
discard. The length of time between a
discard on one CPU and the buffer being made
available for subsequent speculations is guaranteed to be no
longer than the time that is dictated by the cleaning rate. If, at
the time speculation is called, no buffer is
available because all speculative buffers are currently being
discarded or committed, dtrace generates a
message similar to the following: