diff options
author | LAN-TW <lantw44@gmail.com> | 2013-12-26 01:36:50 +0800 |
---|---|---|
committer | LAN-TW <lantw44@gmail.com> | 2013-12-26 01:36:50 +0800 |
commit | e3486d95bc4bd00a582f340b6c89d3ad43902e5f (patch) | |
tree | a527668147f63c54d9d21d566c43478c4abbd39b | |
parent | e0bda7bda411c995ba89f28193529786982bdb98 (diff) | |
download | cn2013-e3486d95bc4bd00a582f340b6c89d3ad43902e5f.tar.gz cn2013-e3486d95bc4bd00a582f340b6c89d3ad43902e5f.tar.zst cn2013-e3486d95bc4bd00a582f340b6c89d3ad43902e5f.zip |
嘗試修正 receiver 可能提早結束的問題
-rw-r--r-- | hw2/trans-loop.c | 2 | ||||
-rw-r--r-- | hw2/ump-sched.c | 5 |
2 files changed, 3 insertions, 4 deletions
diff --git a/hw2/trans-loop.c b/hw2/trans-loop.c index a70713b..f7dd96b 100644 --- a/hw2/trans-loop.c +++ b/hw2/trans-loop.c @@ -119,7 +119,7 @@ int ump_trans_receiver (LbsLogger* lbs_log, char** bind_ptr) { char* filename_pos; int fd; - while ((buf_size = ump_sched_receive (sched, buf)) > 0) { + while ((buf_size = ump_sched_receive (sched, buf)) >= 0) { lbs_logger_format (lbs_log, "==> Get %d bytes!", buf_size); re_eval: diff --git a/hw2/ump-sched.c b/hw2/ump-sched.c index 7ee4e0c..7173416 100644 --- a/hw2/ump-sched.c +++ b/hw2/ump-sched.c @@ -297,7 +297,7 @@ static ssize_t flush_packet (UmpSched* sched, void* buf) { } } - lbs_logger_format (sched->log, "flush %d packets", i - 3); + lbs_logger_format (sched->log, "flush %d packets", i - 1); if (i >= UMP_SCHED_PKT_COUNT) { sched->seq_start += i - 1; memset (&sched->pkt_valid, 0, sizeof (sched->pkt_valid)); @@ -316,7 +316,7 @@ ssize_t ump_sched_receive (UmpSched* sched, void* buf) { assert (sched->type == UMP_SCHED_TYPE_RECEIVER); if (!sched->peer_set) { - return 0; + return -1; } memset (sched->pkt_valid, 0, sizeof (sched->pkt_valid)); @@ -386,7 +386,6 @@ ssize_t ump_sched_receive (UmpSched* sched, void* buf) { return flush_packet (sched, buf); } } - return 0; } ssize_t ump_sched_send (UmpSched* sched, void* buf, size_t count) { |