From f7410c87c8b5317b1bbf2ff3268fbd0ca5592ee7 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sat, 2 Dec 2006 00:00:36 +0100 Subject: [PATCH] A more realistic asio-test, which uses memcpy(). --- debug/sorter/asio-test.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/debug/sorter/asio-test.c b/debug/sorter/asio-test.c index f3f384ca..974f70a1 100644 --- a/debug/sorter/asio-test.c +++ b/debug/sorter/asio-test.c @@ -8,6 +8,7 @@ #include #include +#include #include #include @@ -37,6 +38,7 @@ int main(int argc, char **argv) uns cnt_ms; int fd[files]; byte name[files][16]; + struct asio_request *req[files]; init_timer(); @@ -81,18 +83,23 @@ int main(int argc, char **argv) log(L_INFO, "Writing %d MB to %d files in parallel with %d byte buffers", (int)(total_size >> 20), files, bufsize); P_INIT; + for (uns i=0; iop = ASIO_READ; - r->fd = in_fd; - r->len = bufsize; - asio_submit(r); - struct asio_request *rr = asio_wait(&io_queue); - ASSERT(rr == r && r->status == (int)r->len); + struct asio_request *rr, *rd = asio_get(&io_queue); + rd->op = ASIO_READ; + rd->fd = in_fd; + rd->len = bufsize; + asio_submit(rd); + rr = asio_wait(&io_queue); + ASSERT(rr == rd && rd->status == (int)rd->len); + memcpy(r->buffer, rd->buffer, bufsize); + asio_put(rr); #else for (uns j=0; jbuffer[j] = round+i+j; @@ -102,8 +109,11 @@ int main(int argc, char **argv) r->len = bufsize; asio_submit(r); P_UPDATE(bufsize); + req[i] = asio_get(&io_queue); } } + for (uns i=0; i