Mercurial > flash_v2
changeset 513:75bb10dfa0df
Slight improvement in UDP throughput testing.
| author | gthomas |
|---|---|
| date | Mon, 20 Jan 2003 11:14:37 +0000 |
| parents | 86bfbf46eeba |
| children | 84fbdcadcb5f |
| files | packages/net/common/current/ChangeLog packages/net/common/current/tests/nc_test_slave.c |
| diffstat | 2 files changed, 23 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/net/common/current/ChangeLog +++ b/packages/net/common/current/ChangeLog @@ -1,3 +1,9 @@ +2003-01-20 Gary Thomas <gary@mlbassoc.com> + + * tests/nc_test_slave.c: Improve handling of UDP buffer space - try + to minimize amount of "idle" time when this occurs. Since this test + is just for show, these changes just make the numbers "look" better. + 2003-01-18 Jonathan Larmour <jifl@eCosCentric.com> * src/network_support.c (init_all_network_interfaces): Define buf
--- a/packages/net/common/current/tests/nc_test_slave.c +++ b/packages/net/common/current/tests/nc_test_slave.c @@ -210,25 +210,36 @@ do_udp_test(int s1, struct nc_request *r } } if (need_send) { + int retries = 10; + bool sent = false; + int res; + tdp = (struct nc_test_data *)out_buf; tdp->key1 = htonl(NC_TEST_DATA_KEY1); tdp->key2 = htonl(NC_TEST_DATA_KEY2); tdp->seq = htonl(seq); td_len = ntohl(req->buflen) + sizeof(struct nc_test_data); tdp->len = htonl(td_len); - if (sendto(s, tdp, td_len, 0, - (struct sockaddr *)&test_chan_master, sizeof(test_chan_master)) < 0) { - perror("sendto"); + while (!sent && (--retries >= 0)) { + res = sendto(s, tdp, td_len, 0, + (struct sockaddr *)&test_chan_master, sizeof(test_chan_master)); + if (res > 0) { + sent = true; + break; + } if (errno == ENOBUFS) { // Saturated the system - test_delay(10); // Time for 200 500 byte 10-baseT packets + test_delay(1); // Time for 200 500 byte 10-baseT packets } else { // What else to do? close(s); return; } + } + if (sent) { + nsent++; } else { - nsent++; + perror("sendto"); } } seq++; @@ -240,7 +251,7 @@ do_udp_test(int s1, struct nc_request *r results.nrecvd = htonl(nrecvd); if (sendto(s, &results, sizeof(results), 0, (struct sockaddr *)&test_chan_master, sizeof(test_chan_master)) < 0) { - perror("sendto"); + perror("sendto results"); } close(s); }
