11.3.25 bb_update/3

Synopsis

bb_update(:Key, -OldTerm, +NewTerm)

If a term is currently stored under Key and unifies with OldTerm, the term is replaced by a copy of NewTerm. Otherwise, bb_update/3 silently fails. This predicate provides an atomic swap operation.

Arguments

:Key

atomic, must be nonvar

OldTerm

term

NewTerm

term

Description

Any uninstantiated variables in the NewTerm will be replaced by new private variables, along with copies of any subgoals blocked on these variables (see ref-sem-sec).

Exceptions

instantiation_error

Key is not instantiated

type_error

Key is not an atom or a small integer.

See Also

ref-mdb-bbd.


Send feedback on this subject.