X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=debug%2Fsorter%2Fasio-test.c;h=974f70a1a03430b3fd936ec6302fb1b435755631;hb=9ff2d1d3d98e39cfe57e38519427a7754d73cb6c;hp=f3f384ca0bf63dee96ab3457e7d0065e7bf54fe3;hpb=ae8a9dd77d64838c354731ab32cc42b5bf576738;p=libucw.git 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