diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-11-09 17:33:53 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-11-09 17:33:53 -0500 |
| commit | 6b21841da65ac163aee4559541f0e70d0ed3517c (patch) | |
| tree | 84e0d592cc602cb01a3d2f228cfb4223eacadbb4 /doc | |
| parent | d164f320be094e2348260785386fff0e756d0ec9 (diff) | |
| download | soen423-6b21841da65ac163aee4559541f0e70d0ed3517c.zip | |
sequencer pseudocode: add retransmit() routine to Trans
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/trans.pseudo | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/doc/trans.pseudo b/doc/trans.pseudo index 405231d..644633a 100644 --- a/doc/trans.pseudo +++ b/doc/trans.pseudo @@ -20,6 +20,7 @@ var ( negativeAcks []mid received []m retransmissions []mid + lastSend time ) send(m) { @@ -27,6 +28,7 @@ send(m) { multicast(pkt) positiveAcks = [] go timeout(m) + lastSend = now() } timeout(m) { @@ -69,6 +71,16 @@ recv(m) { } } +retransmit() { + forever { + wait until (timeSince(lastSend) > threshold) && (len(retransmissions) > 0) + + mid := pop(retransmissions) + m := received[mid] + send(m) + } +} + prune() { // TODO: use Observable Predicate for Delivery } |