diff options
author | LAN-TW <lantw44@gmail.com> | 2013-12-22 18:51:37 +0800 |
---|---|---|
committer | LAN-TW <lantw44@gmail.com> | 2013-12-22 18:51:37 +0800 |
commit | e31ea27563b6307fead8d64d96e946adf7e010d9 (patch) | |
tree | 8ac924d11b7596599c73144b105c8f3430f3cb6a | |
parent | 54d53e95ba3ff4a746dfeb91e93272d8c03b5d77 (diff) | |
download | cn2013-e31ea27563b6307fead8d64d96e946adf7e010d9.tar.gz cn2013-e31ea27563b6307fead8d64d96e946adf7e010d9.tar.zst cn2013-e31ea27563b6307fead8d64d96e946adf7e010d9.zip |
HW2; 修正重傳方法與評分方法
-rw-r--r-- | hw2/ump-sched.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/hw2/ump-sched.c b/hw2/ump-sched.c index 7aa9cc4..bee8b32 100644 --- a/hw2/ump-sched.c +++ b/hw2/ump-sched.c @@ -431,12 +431,8 @@ ssize_t ump_sched_send (UmpSched* sched, void* buf, size_t count) { "agent[%d]: # sent %d # score %d #", j, sched->conn[j].sent, sched->conn[j].score); } - if (sched->pkt_valid[i]) { - i++; - continue; - } - xalarm (3, 0); + xalarm (1, 500000); UmpPkt pkt_new_struct; UmpPkt* pkt_new = &pkt_new_struct; @@ -457,6 +453,7 @@ ssize_t ump_sched_send (UmpSched* sched, void* buf, size_t count) { ump_pkt_get_data_offset (pkt) + pkt->app_data_len, 0, SOCKADDR (&(sched->conn[selected].addr)), sched->conn[selected].addr_len); + sched->pkt_map[i] = selected; } continue; } @@ -472,8 +469,9 @@ ssize_t ump_sched_send (UmpSched* sched, void* buf, size_t count) { } uint32_t seq_rel = ump_pkt_get_seq_num (pkt_new) - sched->seq_start; if (seq_rel >= 0 && seq_rel < sched->pkt_count) { - i++; - sched->pkt_valid[seq_rel] = true; + if (seq_rel == i) { + i++; + } } } |