User`s guide

Developing an Application [3]
When a set of generic functions access a multiword variable simultaneously, the
resulting behavior depends on the generic functions that constitute the set. If all the
generic functions in the set require the variable to be in either a full or empty state,
the functions access the variable in a serialized manner and the user-visible state
is consistent. However, if any generic function in the set does not depend on the
full-empty state (such as the
purge, readxx, and writexf functions), the ability
to serialize the set is not guaranteed. If the set is not serialized, generic functions may
access words in the variable in a different order, resulting in inconsistencies in one or
more of the following: the state of the value returned by one or more of the generics;
the memory holding the variable; the data value; or the full-empty bits.
Accessing an individual memory word that is part of a multiword variable (for
example, using a cast or a union) could result in inconsistent full-empty states and a
data value partially composed of both current and obsolete memory contents. It may
also cause a deadlock to occur.
3.2.1.1 Generic Write Functions
The generic write functions write new values to variables, depending upon the
full-empty state of the variable. If the type for a value does not match the type for the
variable that stores the value, the value is cast to the correct type before being written.
For example, in the following:
int i;
writeff(&i, 2.0);
The value 2.0 (float) is cast to 2 (int) before being written to i.
S247920 21