From 0382000ea6d4d1a3c45bbd91293757b88eca8085 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Sun, 16 Dec 2012 14:11:34 -0800 Subject: [PATCH] refresh (create temporary patch) --- meta | 5 +-- patches/refresh-temp | 77 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 patches/refresh-temp diff --git a/meta b/meta index a19dd31e..8d6e6923 100644 --- a/meta +++ b/meta @@ -1,8 +1,9 @@ Version: 1 -Previous: 29e4a917ee1a4c7eb43b15665f56c76ff5b37557 -Head: 30a3a196b65c1c0637c01d0829f1ed00ba53225d +Previous: 31083652d78b7a2ace794dcb86ff72a07d8dbf11 +Head: f0dbe5d3dc845e0839dc7b08be53b5ae41032efa Applied: dsocket: 30a3a196b65c1c0637c01d0829f1ed00ba53225d + refresh-temp: f0dbe5d3dc845e0839dc7b08be53b5ae41032efa Unapplied: udpong: a003dda8e0d2f6ea134932bdd8bf5a5f29b7bfce test-udp: f6c78ad2a26f452cf166aff1baa7b76160bd8bf7 diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 00000000..aa40a3ce --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,77 @@ +Bottom: 085131bec099e61aa57e12da9977ca49a5ea1a1e +Top: f8258dbc93f14acdb67621e51c1696fca92c841a +Author: Sean Hefty +Date: 2012-12-16 14:11:34 -0800 + +Refresh of dsocket + +--- + +diff --git a/src/rsocket.c b/src/rsocket.c +index a5a01ba..4631b1d 100644 +--- a/src/rsocket.c ++++ b/src/rsocket.c +@@ -2010,30 +2010,41 @@ static int ds_get_cq_event(struct rsocket *rs) + return ret; + } + ++static int rs_have_rdata(struct rsocket *rs); ++static int ds_can_send(struct rsocket *rs); ++ + static int ds_process_cqs(struct rsocket *rs, int nonblock, int (*test)(struct rsocket *rs)) + { + int ret = 0; + ++ if (test == rs_have_rdata) ++ printf("%s test rs_have_rdata\n", __func__); ++ else if (test == ds_can_send) ++ printf("%s test ds_can_send\n", __func__); ++ else ++ printf("%s test ?\n", __func__); ++ + fastlock_acquire(&rs->cq_lock); + do { + ds_poll_cqs(rs); + if (test(rs)) { +-// printf("%s test succeeded\n", __func__); ++ printf("%s test succeeded\n", __func__); + ret = 0; + break; + } else if (nonblock) { + ret = ERR(EWOULDBLOCK); +-// printf("%s nonblocking \n", __func__); ++ printf("%s nonblocking \n", __func__); + } else if (!rs->cq_armed) { +-// printf("%s req notify \n", __func__); ++ printf("%s req notify \n", __func__); + ds_req_notify_cqs(rs); + rs->cq_armed = 1; + } else { + fastlock_acquire(&rs->cq_wait_lock); + fastlock_release(&rs->cq_lock); + ++ printf("%s wait for event \n", __func__); + ret = ds_get_cq_event(rs); +-// printf("%s get event ret %d %s\n", __func__, ret, strerror(errno)); ++ printf("%s get event ret %d %s\n", __func__, ret, strerror(errno)); + fastlock_release(&rs->cq_wait_lock); + fastlock_acquire(&rs->cq_lock); + } +@@ -2196,6 +2207,7 @@ static ssize_t ds_recvfrom(struct rsocket *rs, void *buf, size_t len, int flags, + ds_post_recv(rs, rmsg->qp, rmsg->offset); + if (++rs->rmsg_head == rs->rq_size + 1) + rs->rmsg_head = 0; ++ rs->rqe_avail++; + } + + // printf("%s ret %d errno %s\n", __func__, ret, strerror(errno)); +@@ -2492,7 +2504,9 @@ static ssize_t dsend(struct rsocket *rs, const void *buf, size_t len, int flags) + return ds_send_udp(rs, buf, len, flags, RS_OP_DATA); + + if (!ds_can_send(rs)) { ++ printf("can't send\n"); + ret = ds_get_comp(rs, rs_nonblocking(rs, flags), ds_can_send); ++ printf("ds_get_comp %d\n", ret); + if (ret) + return ret; + } -- 2.46.0