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.