summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLAN-TW <lantw44@gmail.com>2013-12-26 01:36:50 +0800
committerLAN-TW <lantw44@gmail.com>2013-12-26 01:36:50 +0800
commite3486d95bc4bd00a582f340b6c89d3ad43902e5f (patch)
treea527668147f63c54d9d21d566c43478c4abbd39b
parente0bda7bda411c995ba89f28193529786982bdb98 (diff)
downloadcn2013-e3486d95bc4bd00a582f340b6c89d3ad43902e5f.tar.gz
cn2013-e3486d95bc4bd00a582f340b6c89d3ad43902e5f.tar.zst
cn2013-e3486d95bc4bd00a582f340b6c89d3ad43902e5f.zip
嘗試修正 receiver 可能提早結束的問題
-rw-r--r--hw2/trans-loop.c2
-rw-r--r--hw2/ump-sched.c5
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) {