Version: 1
-Previous: 4e5c57375b9fc02d719ebf4e2ca1bfe40d1cb81c
-Head: 3226b1f523058674e3040ef4d3e19b58d71300a6
+Previous: e1ec37dfb9636b103221420555a61740b08c6182
+Head: 5cbd0d0dc8394ffda74a1e55badc2e2fb37d27a1
Applied:
real-close: 3409f8d6af187d25c63a5d1f8ee8bff5f14555e2
dup2: ca5813e7cf95dee5933fc417e4a34d26f2b01824
fork-connect: a50a83fb4e574a2cc435bba1abf6f9df3d0cc7a6
sendfile: 9073427ddddfa2f7c93d0ac4a6da9844cb7d2960
fstat: a957d5786c30dfb1da9cf9345e4a639f6006fbda
- waitall-buggy: 6bb438e80dd6dee5ab2d84cd9c9f47f0f9b0c4a1
- refresh-temp: 3226b1f523058674e3040ef4d3e19b58d71300a6
+ waitall-buggy: 5cbd0d0dc8394ffda74a1e55badc2e2fb37d27a1
Unapplied:
dbg-out: 4b4c0572eab77856d8fbb919b1feb8f3502a101a
dbg: 0c269855776d3001e37da8c8afe283c20e1d6cd6
+++ /dev/null
-Bottom: f0b4d530a7758f20a79b3abc8f27419ecb1fc961
-Top: 82b0aedfaff9c5dc6df2e8b45d95f760cc338281
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2012-08-16 14:23:58 -0700
-
-Refresh of waitall-buggy
-
----
-
-diff --git a/src/rsocket.c b/src/rsocket.c
-index 13fd0da..8c9e847 100644
---- a/src/rsocket.c
-+++ b/src/rsocket.c
-@@ -1143,7 +1143,7 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags)
- if (flags & MSG_PEEK) {
- // fixme or will peek same data in waitall loop
- left -= rs_peek(rs, &buf, left);
-- continue;
-+ break;
- }
-
- for (; left && rs_have_rdata(rs); left -= rsize) {
-@@ -1164,12 +1164,13 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags)
- buf += end_size;
- rsize -= end_size;
- left -= end_size;
-+ rs->rbuf_bytes_avail += end_size;
- }
- memcpy(buf, &rs->rbuf[rs->rbuf_offset], rsize);
- rs->rbuf_offset += rsize;
- buf += rsize;
-+ rs->rbuf_bytes_avail += rsize;
- }
-- rs->rbuf_bytes_avail += len - left; // <- fixme in waitall loop
-
- } while ((flags & MSG_WAITALL) && (rs->state & rs_connect_rd) && left);
Bottom: 3f4ba48a611f719563dc773a1c33fbd391708df0
-Top: f0b4d530a7758f20a79b3abc8f27419ecb1fc961
+Top: 82b0aedfaff9c5dc6df2e8b45d95f760cc338281
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2012-06-28 11:34:38 -0700
---
diff --git a/src/rsocket.c b/src/rsocket.c
-index 996cb2f..13fd0da 100644
+index 996cb2f..8c9e847 100644
--- a/src/rsocket.c
+++ b/src/rsocket.c
-@@ -1131,43 +1131,48 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags)
+@@ -1131,43 +1131,49 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags)
}
}
fastlock_acquire(&rs->rlock);
+ if (flags & MSG_PEEK) {
+ // fixme or will peek same data in waitall loop
+ left -= rs_peek(rs, &buf, left);
-+ continue;
++ break;
}
- end_size = rs->rbuf_size - rs->rbuf_offset;
+ buf += end_size;
+ rsize -= end_size;
+ left -= end_size;
++ rs->rbuf_bytes_avail += end_size;
+ }
+ memcpy(buf, &rs->rbuf[rs->rbuf_offset], rsize);
+ rs->rbuf_offset += rsize;
+ buf += rsize;
++ rs->rbuf_bytes_avail += rsize;
}
- memcpy(buf, &rs->rbuf[rs->rbuf_offset], rsize);
- rs->rbuf_offset += rsize;
- }
- rs->rbuf_bytes_avail += len - left;
-out:
-+ rs->rbuf_bytes_avail += len - left; // <- fixme in waitall loop
+
+ } while ((flags & MSG_WAITALL) && (rs->state & rs_connect_rd) && left);
+