Various techniques for manipulating data using access states of memory,
access control fields of pointers and operations, and exception raising
and exception trapping in a multithreaded computer system. In particular,
the techniques include synchronization support for a thread blocked in a
word, demand evaluation of values, parallel access of multiple threads to
a list, synchronized and unsynchronized access to a data buffer, use of
forwarding to avoid checking for an end of a buffer, use of sentinel word
to detect access past a data structure, concurrent access to a word of
memory using different synchronization access modes, and use of trapping
to detect access to restricted memory.