User`s guide
Developing an Application [3]
The Cray XMT compiler recognizes the following generic read functions.
readfe(&v)
Returns the value of variable v when v is in a full state and sets v
to an empty state. This allows one or more threads waiting for v to
change to an empty state to resume execution. If v is in an empty
state, the read operation is blocked until v changes to a full state.
This generic function behaves like a read access to a sync variable.
readff(&v)
Returns the value of variable v when v is in a full state and leaves v
in a full state. If v is in an empty state, the read operation is blocked
until v changes to a full state. This generic function behaves like a
read access to a future variable.
readxx(&v)
Returns the value of variable v but does not interact with the
full-empty memory state.
touch(&v)
The touch function returns the value of future variable v, where
v is associated with a future statement that has been spawned, but
whose body may or may not have already begun execution. If the
future body that writes v has not begun executing, the thread calling
touch executes the future body. If the future body associated with v
is currently being executed or has finished executing, touch(&v)
acts like a readff(&v) function.
You use the touch function with future variables that are filled
by the execution of code in the body of a future statement. Using
Futures in an Application on page 31 Touching a future variable
that is in an empty state but not bound to a future results in an
execution-time error.
For more information, see the generics(1) man page.
S–2479–20 23