]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
refresh (create temporary patch)
authorSean Hefty <sean.hefty@intel.com>
Wed, 16 May 2012 22:37:54 +0000 (15:37 -0700)
committerSean Hefty <sean.hefty@intel.com>
Wed, 16 May 2012 22:37:54 +0000 (15:37 -0700)
meta
patches/refresh-temp [new file with mode: 0644]

diff --git a/meta b/meta
index efe3eeb273ad6814d36345aea34051495237fa0c..61e4c595a5265c2f6d057949b42e0b36aadf5c5c 100644 (file)
--- a/meta
+++ b/meta
@@ -1,6 +1,6 @@
 Version: 1
-Previous: e2166663442d8ba5831117b6a4bfad1d24332074
-Head: a8f471739c6fe7acf91d6d39197161795a56d74c
+Previous: 2818cec35424f0d431e7a77d3452254e6f76160f
+Head: dc51489aca8059b6ac1dd7a9eb543469bace65a7
 Applied:
   rs-locking: ec6a8efe211b0dc98548443c2e0d67e2c355351f
   reuseaddr: 5ce7d9c48d082fd1959918e9134f4bdd85c402d9
@@ -8,6 +8,7 @@ Applied:
   rstream-async-opt: 0ee1dfc9ad50f07fd3708ebb04cb92e0fb2f41d5
   rs-nodelay: 7601a5adca71f10ad1cb63292c769b7b9a35dd08
   rs-async-nonblock: a8f471739c6fe7acf91d6d39197161795a56d74c
+  refresh-temp: dc51489aca8059b6ac1dd7a9eb543469bace65a7
 Unapplied:
   comp_locks: b89aab130b4619806557e11e6b9c10964f00743f
   preload: 5dfe7abc07064485c5100e04e5412279244c2bc3
diff --git a/patches/refresh-temp b/patches/refresh-temp
new file mode 100644 (file)
index 0000000..ad5bbfc
--- /dev/null
@@ -0,0 +1,112 @@
+Bottom: 456260422aff51feca00c1ee2db83c3d63b6e111
+Top:    e458b46af068c102885a173b1e9d7a083a3f1511
+Author: Sean Hefty <sean.hefty@intel.com>
+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;
+ }