To finish issue #7, we need to make the following changes to the reference tracking scheme:
[x] Remove the release buffer, acknowledgment messages, and epochs.
[x] When an actor deactivates a reference (by invoking the release method) it should delete its local message send count for that reference.
[x] When a reference is released (by invoking the handleRelease method) the target of the reference should delete its local receive count for that reference.
[x] Add sent counts, receive counts, and released_owners to each actor's snapshot.
[x] Replace the created set with a createdUsing map. This field maps each reference x to the set of references created using x.
[x] Modify releaseTo so that, when x is deactivated, only references that were created using x are sent to the target.
We also need to add tests for these features, but let's make that a separate issue.
To finish issue #7, we need to make the following changes to the reference tracking scheme:
release
method) it should delete its local message send count for that reference.handleRelease
method) the target of the reference should delete its local receive count for that reference.released_owners
to each actor's snapshot.created
set with acreatedUsing
map. This field maps each reference x to the set of references created using x.releaseTo
so that, when x is deactivated, only references that were created using x are sent to the target.We also need to add tests for these features, but let's make that a separate issue.