--- libaitsched/example/test.c 2012/08/02 11:37:08 1.6.8.5 +++ libaitsched/example/test.c 2012/08/02 12:08:44 1.6.8.6 @@ -11,7 +11,7 @@ #include intptr_t Kill; -struct iovec iv[3]; +struct iovec iv[3], wiv[3], riv[3]; void *event(sched_task_t *arg) { @@ -90,7 +90,7 @@ void *aiobulkread(sched_task_t *arg) printf("aioBULKread::\n"); for (i = 0; i < 3; i++) { - printf("%d) [%d]=%s\n---\n", i, iv[i].iov_len, (char*) iv[i].iov_base); + printf("%d) rlen[%d]=%s\n---\n", i, iv[i].iov_len, (char*) iv[i].iov_base); free(iv[i].iov_base); } @@ -104,7 +104,7 @@ void *aiobulkwrite(sched_task_t *arg) printf("aioBULKwrite::\n"); for (i = 0; i < 3; i++) { - printf("%d) %d\n", i, iv[i].iov_len); + printf("%d) wlen=%d\n", i, iv[i].iov_len); free(iv[i].iov_base); } @@ -197,31 +197,33 @@ main(int argc, char **argv) printf("Warning:: #%d - %s\n", sched_GetErrno(), sched_GetError()); - lseek(fd, 0, SEEK_SET); iv[0].iov_len = 5; iv[1].iov_len = 2; iv[2].iov_len = 50; for (i = 0; i < 3; i++) iv[i].iov_base = malloc(iv[i].iov_len); - if (!schedLIORead(root, aiobulkread, NULL, fd, iv, 3)) + if (!schedLIORead(root, aiobulkread, NULL, fd, iv, 3, 0)) printf("Warning:: #%d - %s\n", sched_GetErrno(), sched_GetError()); - + fsync(fd); for (i = 0; i < 3; i++) { - iv[i].iov_len = 100; - iv[i].iov_base = malloc(iv[i].iov_len); + wiv[i].iov_len = 100; + wiv[i].iov_base = malloc(iv[i].iov_len); } - strlcpy(iv[0].iov_base, "aaa\n", iv[0].iov_len); - strlcpy(iv[1].iov_base, "bbbbb\n", iv[1].iov_len); - strlcpy(iv[2].iov_base, "zzz\n", iv[2].iov_len); - if (!schedLIOWrite(root, aiobulkwrite, NULL, fd, iv, 3)) + strlcpy(wiv[0].iov_base, "aaa0000000000000000000134234234242424\n", wiv[0].iov_len); + wiv[0].iov_len = strlen(wiv[0].iov_base) + 1; + strlcpy(wiv[1].iov_base, "bbbbbbbbbbbbbbbbbbbbb\n", wiv[1].iov_len); + wiv[1].iov_len = strlen(wiv[1].iov_base) + 1; + strlcpy(wiv[2].iov_base, "zzz\n", wiv[2].iov_len); + wiv[2].iov_len = strlen(wiv[2].iov_base) + 1; + if (!schedLIOWrite(root, aiobulkwrite, NULL, fd, wiv, 3, 0)) printf("Warning:: #%d - %s\n", sched_GetErrno(), sched_GetError()); - lseek(fd, 0, SEEK_SET); for (i = 0; i < 3; i++) { - iv[i].iov_len = 4; - iv[i].iov_base = malloc(iv[i].iov_len); + riv[i].iov_len = 5; + riv[i].iov_base = malloc(riv[i].iov_len + 1); + memset(riv[i].iov_base, 0, riv[i].iov_len + 1); } - if (!schedLIORead(root, aiobulkread, NULL, fd, iv, 3)) + if (!schedLIORead(root, aiobulkread, NULL, fd, riv, 3, 0)) printf("Warning:: #%d - %s\n", sched_GetErrno(), sched_GetError()); schedCallOnce(root, once, "000000", 42, NULL, 0);