memory synchronization data types and atomic
operations performed on them. Among the several
forms to be provided, the two most powerful are the
futures
construct and the dataflow object. The
futures
construct is a dynamic data structure devised in the
late 1970s by Hewitt [1] to provide an important n-
way producer-consumer synchronization mechanism.
The future is important because it provides a fully
distributed means of synchronizing actions on data
products which are generated by sources unknown to
the accessing task. Requesting burtons arriving at the
site of a futures variable for whom the value has yet
to be produced can be queued efficiently until the
result is available. This action is performed locally
and is made efficient because linked data structures
like lists, trees, directed graphs, etc. can be created
very quickly because data structures are rapidly
copied and moved in CCA. The dataflow construct is
also a lightweight object that accepts multiple burtons
and when a criterion of continued execution is
satisfied, the action is performed on local state and
possibly one or more burtons are created to continue
the execution elsewhere in the system. The dataflow
construct may be a satellite data structure associated
with another data element within a large linked data
structure.