From: Sean Hefty Date: Wed, 16 May 2012 22:37:55 +0000 (-0700) Subject: refresh X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=f294ef5e8278461d2fce6dc6be609fd00a0c5174;p=~shefty%2Flibrdmacm.git refresh --- diff --git a/meta b/meta index 61e4c595..40f925a5 100644 --- a/meta +++ b/meta @@ -1,14 +1,13 @@ Version: 1 -Previous: 2818cec35424f0d431e7a77d3452254e6f76160f -Head: dc51489aca8059b6ac1dd7a9eb543469bace65a7 +Previous: 956d6241cedd0992ec62f960556458ae6b2fd8b0 +Head: 4756e96b146fc78a016b82a07f42a5b375a29eaf Applied: rs-locking: ec6a8efe211b0dc98548443c2e0d67e2c355351f reuseaddr: 5ce7d9c48d082fd1959918e9134f4bdd85c402d9 rstream-delay: 8f0437ec677c4752126de8667e093667dd681d56 rstream-async-opt: 0ee1dfc9ad50f07fd3708ebb04cb92e0fb2f41d5 rs-nodelay: 7601a5adca71f10ad1cb63292c769b7b9a35dd08 - rs-async-nonblock: a8f471739c6fe7acf91d6d39197161795a56d74c - refresh-temp: dc51489aca8059b6ac1dd7a9eb543469bace65a7 + rs-async-nonblock: 4756e96b146fc78a016b82a07f42a5b375a29eaf Unapplied: comp_locks: b89aab130b4619806557e11e6b9c10964f00743f preload: 5dfe7abc07064485c5100e04e5412279244c2bc3 diff --git a/patches/refresh-temp b/patches/refresh-temp deleted file mode 100644 index ad5bbfc9..00000000 --- a/patches/refresh-temp +++ /dev/null @@ -1,112 +0,0 @@ -Bottom: 456260422aff51feca00c1ee2db83c3d63b6e111 -Top: e458b46af068c102885a173b1e9d7a083a3f1511 -Author: Sean Hefty -Date: 2012-05-16 15:37:54 -0700 - -Refresh of rs-async-nonblock - ---- - -diff --git a/examples/rstream.c b/examples/rstream.c -index 8d5a22d..5532905 100644 ---- a/examples/rstream.c -+++ b/examples/rstream.c -@@ -57,6 +57,7 @@ static int use_rs = 1; - static int use_async; - static int verify; - static int flags = MSG_DONTWAIT; -+static int poll_timeout = 0; - static int custom; - static int iterations = 1; - static int transfer_size = 1000; -@@ -190,6 +191,17 @@ static int verify_buf(void *buf, int size) - return 0; - } - -+static int do_poll(struct pollfd *fds) -+{ -+ int ret; -+ -+ do { -+ ret = rs_poll(fds, 1, poll_timeout); -+ } while (!ret); -+ -+ return ret == 1 ? 0 : ret; -+} -+ - static int send_xfer(int rs, int size) - { - struct pollfd fds; -@@ -205,8 +217,8 @@ static int send_xfer(int rs, int size) - - for (offset = 0; offset < size; ) { - if (use_async) { -- ret = rs_poll(&fds, 1, -1); -- if (ret != 1) -+ ret = do_poll(&fds); -+ if (ret) - return ret; - } - -@@ -234,8 +246,8 @@ static int recv_xfer(int rs, int size) - - for (offset = 0; offset < size; ) { - if (use_async) { -- ret = rs_poll(&fds, 1, -1); -- if (ret != 1) -+ ret = do_poll(&fds); -+ if (ret) - return ret; - } - -@@ -377,8 +389,8 @@ static int server_connect(void) - fds.fd = lrs; - fds.events = POLLIN; - -- ret = rs_poll(&fds, 1, -1); -- if (ret != 1) { -+ ret = do_poll(&fds); -+ if (ret) { - perror("rpoll"); - goto close; - } -@@ -421,21 +433,24 @@ static int client_connect(void) - ret = rs_connect(rs, res->ai_addr, res->ai_addrlen); - if (ret && (errno != EINPROGRESS)) { - perror("rconnect"); -- rs_close(rs); -- rs = ret; -+ goto err; - } - - if (errno == EINPROGRESS) { - fds.fd = rs; - fds.events = POLLOUT; -- do { -- ret = rs_poll(&fds, 1, -1); -- } while (!ret); -+ ret = do_poll(&fds); -+ if (ret) -+ goto err; - } - - free: - freeaddrinfo(res); - return rs; -+err: -+ freeaddrinfo(res); -+ rs_close(rs); -+ return ret; - } - - static int run(void) -@@ -562,6 +577,9 @@ int main(int argc, char **argv) - } - } - -+ if (!(flags & MSG_DONTWAIT)) -+ poll_timeout = -1; -+ - ret = run(); - return ret; - } diff --git a/patches/rs-async-nonblock b/patches/rs-async-nonblock index 0e2a8fd4..8c9c52bc 100644 --- a/patches/rs-async-nonblock +++ b/patches/rs-async-nonblock @@ -1,5 +1,5 @@ Bottom: 456260422aff51feca00c1ee2db83c3d63b6e111 -Top: 456260422aff51feca00c1ee2db83c3d63b6e111 +Top: e458b46af068c102885a173b1e9d7a083a3f1511 Author: Sean Hefty Date: 2012-05-16 15:23:41 -0700 @@ -23,4 +23,106 @@ Signed-off-by: Sean Hefty --- - +diff --git a/examples/rstream.c b/examples/rstream.c +index 8d5a22d..5532905 100644 +--- a/examples/rstream.c ++++ b/examples/rstream.c +@@ -57,6 +57,7 @@ static int use_rs = 1; + static int use_async; + static int verify; + static int flags = MSG_DONTWAIT; ++static int poll_timeout = 0; + static int custom; + static int iterations = 1; + static int transfer_size = 1000; +@@ -190,6 +191,17 @@ static int verify_buf(void *buf, int size) + return 0; + } + ++static int do_poll(struct pollfd *fds) ++{ ++ int ret; ++ ++ do { ++ ret = rs_poll(fds, 1, poll_timeout); ++ } while (!ret); ++ ++ return ret == 1 ? 0 : ret; ++} ++ + static int send_xfer(int rs, int size) + { + struct pollfd fds; +@@ -205,8 +217,8 @@ static int send_xfer(int rs, int size) + + for (offset = 0; offset < size; ) { + if (use_async) { +- ret = rs_poll(&fds, 1, -1); +- if (ret != 1) ++ ret = do_poll(&fds); ++ if (ret) + return ret; + } + +@@ -234,8 +246,8 @@ static int recv_xfer(int rs, int size) + + for (offset = 0; offset < size; ) { + if (use_async) { +- ret = rs_poll(&fds, 1, -1); +- if (ret != 1) ++ ret = do_poll(&fds); ++ if (ret) + return ret; + } + +@@ -377,8 +389,8 @@ static int server_connect(void) + fds.fd = lrs; + fds.events = POLLIN; + +- ret = rs_poll(&fds, 1, -1); +- if (ret != 1) { ++ ret = do_poll(&fds); ++ if (ret) { + perror("rpoll"); + goto close; + } +@@ -421,21 +433,24 @@ static int client_connect(void) + ret = rs_connect(rs, res->ai_addr, res->ai_addrlen); + if (ret && (errno != EINPROGRESS)) { + perror("rconnect"); +- rs_close(rs); +- rs = ret; ++ goto err; + } + + if (errno == EINPROGRESS) { + fds.fd = rs; + fds.events = POLLOUT; +- do { +- ret = rs_poll(&fds, 1, -1); +- } while (!ret); ++ ret = do_poll(&fds); ++ if (ret) ++ goto err; + } + + free: + freeaddrinfo(res); + return rs; ++err: ++ freeaddrinfo(res); ++ rs_close(rs); ++ return ret; + } + + static int run(void) +@@ -562,6 +577,9 @@ int main(int argc, char **argv) + } + } + ++ if (!(flags & MSG_DONTWAIT)) ++ poll_timeout = -1; ++ + ret = run(); + return ret; + }