From: Martin Mares Date: Fri, 1 Dec 2006 23:00:36 +0000 (+0100) Subject: A more realistic asio-test, which uses memcpy(). X-Git-Tag: holmes-import~506^2~13^2~221 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=f7410c87c8b5317b1bbf2ff3268fbd0ca5592ee7;p=libucw.git A more realistic asio-test, which uses memcpy(). --- 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