gnus-atomic-progn-assign

gnus-atomic-progn-assign is a Lisp macro in `gnus-util.el'.

(gnus-atomic-progn-assign PROTECT &rest FORMS)

Evaluate FORMS, but ensure that the variables listed in PROTECT
are not changed if anything in FORMS signals an error or otherwise
non-locally exits. The variables listed in PROTECT are updated atomically.
It is safe to use gnus-atomic-progn-assign with long computations.

Note that if any of the symbols in PROTECT were unbound, they will be
set to nil on a successful assignment. In case of an error or other
non-local exit, it will still be unbound.