Resume keys come in three flavors:
- return
- Produced upon a call invocation.
- fault
- Produced upon an invocation of a segment keeper.
- restart
- Produced upon an invocation of a meter keeper.
They are described in more detail here.
Resume keys exist only to waiting domains and then only one flavor exists at a time since resume keys to a particular domain all expire when any of them are used.
It seems to me now that it would have been better to assign the distinction to the domain rather than the key.
There would be one flavor of resume key but three substates of a waiting domain:
- Receptive
- Awaiting a response message after having called a gate key.
This situation is due to a key invocation in the program.
This corresponds to the return key.
- Vulnerable
- Awaiting the outcome of a memory fault.
Receptive of a fault but not a message.
This situation is due to a memory reference by the program.
This corresponds to the fault resume key.
- Impervious
- Waiting for a meter keeper to allow resumption.
This situation is due merely to the program running.
This corresponds to a restart key.
Don’t take the sub-state names too seriously.
I think that this change is entirely invisible.
I think that the documentation and implementation are independent issues.
I think that both would improve with the change.