The concept of exporting and later importing state...
fluke_object_get_state and fluke_object_set_state...
Two types of state are defined for an object: ``simple'' state that can be represented as raw bits in the context of a task address space, and inter-object links which cannot. For each object type, a fluke_object_state structure is defined to encapsulate the simple state if there is any. A reference object is used to represent each inter-object link.
Object references in state (reference objects)...
The state of an object does not include indication
of others referencing it (e.g. mappings referencing regions)...
One distinguished piece of state common to all objects is the object ``hash'' value. The hash value is set when an object is created, either explicitly via a parameter to the fluke_object_create_hash call or implicitly using an implementation-dependent function. The hash value is part of the object state and can be queried by the fluke_object_get_state call on the object or with the fluke_ref_hash on a reference to the object, but it cannot be changed with fluke_object_set_state. The ``write-once'' nature of the hash value implies that any thread with access to the object can safely use the value for a hashed lookup scheme.