Add sleep to avoid the busy loop when waiting for the aiocb
completion.
Signed-off-by: Wanlong Gao <[email protected]>
---
.../conformance/interfaces/aio_cancel/8-1.c | 10 +++++++++-
.../conformance/interfaces/aio_error/1-1.c | 11 ++++++-----
.../conformance/interfaces/aio_fsync/5-1.c | 10 ++++++++--
.../conformance/interfaces/aio_read/1-1.c | 6 ++++--
.../conformance/interfaces/aio_read/10-1.c | 7 ++++---
.../conformance/interfaces/aio_read/11-1.c | 7 +++++--
.../conformance/interfaces/aio_read/3-1.c | 11 ++++++-----
.../conformance/interfaces/aio_read/3-2.c | 11 ++++++-----
.../conformance/interfaces/aio_read/4-1.c | 6 ++++--
.../conformance/interfaces/aio_read/5-1.c | 6 ++++--
.../conformance/interfaces/aio_read/7-1.c | 6 +++++-
.../conformance/interfaces/aio_return/1-1.c | 7 +++++--
.../conformance/interfaces/aio_return/2-1.c | 7 +++++--
.../conformance/interfaces/aio_return/3-1.c | 14 ++++++++++----
.../conformance/interfaces/aio_return/3-2.c | 7 +++++--
.../conformance/interfaces/aio_return/4-1.c | 7 +++++--
.../conformance/interfaces/aio_write/1-1.c | 6 ++++--
.../conformance/interfaces/aio_write/1-2.c | 6 ++++--
.../conformance/interfaces/aio_write/2-1.c | 5 ++++-
.../conformance/interfaces/aio_write/3-1.c | 6 ++++--
.../conformance/interfaces/aio_write/5-1.c | 6 ++++--
.../conformance/interfaces/aio_write/8-1.c | 6 ++++--
.../conformance/interfaces/aio_write/8-2.c | 6 ++++--
.../conformance/interfaces/aio_write/9-1.c | 7 +++++--
.../conformance/interfaces/aio_write/9-2.c | 7 +++++--
25 files changed, 129 insertions(+), 59 deletions(-)
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_cancel/8-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_cancel/8-1.c
index 988f3e4..c461dde 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_cancel/8-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_cancel/8-1.c
@@ -42,6 +42,7 @@ int main()
#define BUF_SIZE 1024
char buf[BUF_SIZE];
int fd;
+ int ret;
struct aiocb aiocb;
if (sysconf(_SC_ASYNCHRONOUS_IO) < 200112L)
@@ -69,7 +70,14 @@ int main()
return PTS_FAIL;
}
- while (aio_error(&aiocb) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ ret = aio_error(&aiocb);
+ } while (ret == EINPROGRESS);
+ if (ret < 0) {
+ printf(TNAME " Error at aio_error() : %s\n", strerror(ret));
+ exit(PTS_FAIL);
+ }
if (aio_cancel(fd, &aiocb) != AIO_ALLDONE) {
printf(TNAME " Error at aio_cancel(): %s\n", strerror(errno));
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_error/1-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_error/1-1.c
index 31c04f1..16c8a0a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_error/1-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_error/1-1.c
@@ -67,12 +67,13 @@ int main()
return PTS_FAIL;
}
- while (aio_error(&aiocb) == EINPROGRESS) ;
-
- ret = aio_error(&aiocb);
+ do {
+ usleep(10000);
+ ret = aio_error(&aiocb);
+ } while (ret == EINPROGRESS);
if (ret != 0) {
- printf(TNAME " Error at aio_error(): %s\n", strerror(ret));
- return PTS_FAIL;
+ printf(TNAME " Error at aio_error() : %s\n", strerror(ret));
+ exit(PTS_FAIL);
}
close(fd);
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/5-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/5-1.c
index ddc4a69..438a430 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/5-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/5-1.c
@@ -72,8 +72,14 @@ int main()
* something else
* otherwise test hangs
*/
-
- while (aio_error(&aiocb_fsync) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ ret = aio_error(&aiocb_fsync);
+ } while (ret == EINPROGRESS);
+ if (ret < 0) {
+ printf(TNAME " Error at aio_error() : %s\n", strerror(ret));
+ exit(PTS_FAIL);
+ }
close(fd);
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/1-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/1-1.c
index 4e7f58f..3b1743e 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/1-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/1-1.c
@@ -81,9 +81,11 @@ int main()
}
/* Wait until end of transaction */
- while ((err = aio_error(&aiocb)) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ err = aio_error(&aiocb);
+ } while (err == EINPROGRESS);
- err = aio_error(&aiocb);
ret = aio_return(&aiocb);
if (err != 0) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/10-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/10-1.c
index 29986ed..2b07b8e 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/10-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/10-1.c
@@ -61,9 +61,10 @@ int main()
exit(PTS_FAIL);
}
- while (aio_error(&aiocb) == EINPROGRESS) ;
- ret = aio_error(&aiocb);
-
+ do {
+ usleep(10000);
+ ret = aio_error(&aiocb);
+ } while (ret == EINPROGRESS);
if (ret != EBADF) {
printf(TNAME " errno is not EBADF %s\n", strerror(errno));
exit(PTS_FAIL);
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/11-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/11-1.c
index 4f89ee6..f22251a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/11-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/11-1.c
@@ -70,9 +70,12 @@ int main()
aiocb.aio_nbytes = BUF_SIZE;
if (aio_read(&aiocb) != -1) {
- while (aio_error(&aiocb) == EINPROGRESS) ;
+ int err;
+ do {
+ usleep(10000);
+ err = aio_error(&aiocb);
+ } while (err == EINPROGRESS);
- int err = aio_error(&aiocb);
int ret = aio_return(&aiocb);
if (ret != -1) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/3-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/3-1.c
index 3789acc..0f8fa97 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/3-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/3-1.c
@@ -39,6 +39,7 @@ int main()
#define BUF_SIZE 111
char buf[BUF_SIZE];
int fd;
+ int ret;
struct aiocb aiocb;
if (sysconf(_SC_ASYNCHRONOUS_IO) < 200112L)
@@ -71,13 +72,13 @@ int main()
}
/* Wait for request completion */
- while (aio_error(&aiocb) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ ret = aio_error(&aiocb);
+ } while (ret == EINPROGRESS);
/* error status shall be 0 and return status shall be BUF_SIZE */
-
- while (aio_error(&aiocb) == EINPROGRESS) ;
-
- if (aio_error(&aiocb) != 0) {
+ if (ret != 0) {
printf(TNAME " Error at aio_error()\n");
exit(PTS_FAIL);
}
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/3-2.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/3-2.c
index ad4f044..7086ee8 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/3-2.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/3-2.c
@@ -39,6 +39,7 @@ int main()
#define BUF_SIZE 1024
char buf[BUF_SIZE];
int fd;
+ int ret;
struct aiocb aiocb;
if (sysconf(_SC_ASYNCHRONOUS_IO) < 200112L)
@@ -73,13 +74,13 @@ int main()
}
/* Wait for request completion */
- while (aio_error(&aiocb) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ ret = aio_error(&aiocb);
+ } while (ret == EINPROGRESS);
/* error status shall be 0 and return status shall be BUF_SIZE/2 */
-
- while (aio_error(&aiocb) == EINPROGRESS) ;
-
- if (aio_error(&aiocb) != 0) {
+ if (ret != 0) {
printf(TNAME " Error at aio_error()\n");
exit(PTS_FAIL);
}
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/4-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/4-1.c
index 1b87aa8..aa033ab 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/4-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/4-1.c
@@ -81,9 +81,11 @@ int main()
int ret;
/* Wait until end of transaction */
- while ((err = aio_error(&aiocb)) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ err = aio_error(&aiocb);
+ } while (err == EINPROGRESS);
- err = aio_error(&aiocb);
ret = aio_return(&aiocb);
if (err != 0) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/5-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/5-1.c
index f24d936..853c602 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/5-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/5-1.c
@@ -82,9 +82,11 @@ int main()
int ret;
/* Wait until end of transaction */
- while ((err = aio_error(&aiocb)) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ err = aio_error(&aiocb);
+ } while (err == EINPROGRESS);
- err = aio_error(&aiocb);
ret = aio_return(&aiocb);
if (err != 0) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/7-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/7-1.c
index ccc2caa..2213799 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/7-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/7-1.c
@@ -40,6 +40,7 @@ int main()
#define BUF_SIZE 111
unsigned char check[BUF_SIZE];
int fd;
+ int ret;
struct aiocb aiocb;
if (sysconf(_SC_ASYNCHRONOUS_IO) < 200112L)
@@ -67,7 +68,10 @@ int main()
exit(PTS_FAIL);
}
- while (aio_error(&aiocb) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ ret = aio_error(&aiocb);
+ } while (ret == EINPROGRESS);
close(fd);
printf("Test PASSED\n");
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_return/1-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_return/1-1.c
index e5f268f..a76ebd6 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_return/1-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_return/1-1.c
@@ -70,8 +70,11 @@ int main(void)
exit(PTS_FAIL);
}
- while (aio_error(&aiocb) == EINPROGRESS)
- sleep(1);
+ do {
+ usleep(10000);
+ retval = aio_error(&aiocb);
+ } while (retval == EINPROGRESS);
+
retval = aio_return(&aiocb);
if (retval == -1) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_return/2-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_return/2-1.c
index e17dc6a..77d976d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_return/2-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_return/2-1.c
@@ -69,8 +69,11 @@ int main(void)
exit(PTS_FAIL);
}
- while (aio_error(&aiocb) == EINPROGRESS)
- sleep(1);
+ do {
+ usleep(10000);
+ retval = aio_error(&aiocb);
+ } while (retval == EINPROGRESS);
+
retval = aio_return(&aiocb);
if (0 < retval) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_return/3-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_return/3-1.c
index 0ba8226..bdb1a83 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_return/3-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_return/3-1.c
@@ -74,8 +74,11 @@ int main(void)
exit(PTS_FAIL);
}
- while (aio_error(&aiocb) == EINPROGRESS)
- sleep(1);
+ do {
+ usleep(10000);
+ retval = aio_error(&aiocb);
+ } while (retval == EINPROGRESS);
+
retval = aio_return(&aiocb);
if (retval == -1) {
@@ -97,8 +100,11 @@ int main(void)
exit(PTS_FAIL);
}
- while (aio_error(&aiocb) == EINPROGRESS)
- sleep(1);
+ do {
+ usleep(10000);
+ retval = aio_error(&aiocb);
+ } while (retval == EINPROGRESS);
+
retval = aio_return(&aiocb);
if (retval == -1) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_return/3-2.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_return/3-2.c
index eb16587..8df6585 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_return/3-2.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_return/3-2.c
@@ -72,8 +72,11 @@ int main(void)
exit(PTS_FAIL);
}
- while (aio_error(&aiocb) == EINPROGRESS)
- sleep(1);
+ do {
+ usleep(10000);
+ retval = aio_error(&aiocb);
+ } while (retval == EINPROGRESS);
+
retval = aio_return(&aiocb);
if (retval == -1) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_return/4-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_return/4-1.c
index 1c056d4..388c985 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_return/4-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_return/4-1.c
@@ -71,8 +71,11 @@ int main(void)
exit(PTS_FAIL);
}
- while (aio_error(&aiocb) == EINPROGRESS)
- sleep(1);
+ do {
+ usleep(10000);
+ retval = aio_error(&aiocb);
+ } while (retval == EINPROGRESS);
+
retval = aio_error(&aiocb);
if (retval == 0) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/1-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/1-1.c
index f500232..0c129a6 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/1-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/1-1.c
@@ -74,9 +74,11 @@ int main()
}
/* Wait until completion */
- while (aio_error(&aiocb) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ err = aio_error(&aiocb);
+ } while (err == EINPROGRESS);
- err = aio_error(&aiocb);
ret = aio_return(&aiocb);
if (err != 0) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/1-2.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/1-2.c
index 8412b54..6ea5a93 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/1-2.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/1-2.c
@@ -87,9 +87,11 @@ int main()
}
/* Wait until end of transaction */
- while (aio_error(&aiocb) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ err = aio_error(&aiocb);
+ } while (err == EINPROGRESS);
- err = aio_error(&aiocb);
ret = aio_return(&aiocb);
if (err != 0) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/2-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/2-1.c
index cc4c217..7927f31 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/2-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/2-1.c
@@ -86,7 +86,10 @@ int main()
}
/* Wait until completion */
- while (aio_error(&aiocb[2]) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ err = aio_error(&aiocb[2]);
+ } while (err == EINPROGRESS);
for (i = 0; i < 3; i++) {
err = aio_error(&aiocb[i]);
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/3-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/3-1.c
index a7e7997..fd06b56 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/3-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/3-1.c
@@ -74,9 +74,11 @@ int main()
}
/* Wait until completion */
- while (aio_error(&aiocb) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ err = aio_error(&aiocb);
+ } while (err == EINPROGRESS);
- err = aio_error(&aiocb);
ret = aio_return(&aiocb);
if (err != 0) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/5-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/5-1.c
index bafd8ac..6a245f0 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/5-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/5-1.c
@@ -70,9 +70,11 @@ int main()
}
/* Wait until completion */
- while (aio_error(&aiocb) == EINPROGRESS) ;
+ do {
+ usleep(10000);
+ err = aio_error(&aiocb);
+ } while (err == EINPROGRESS);
- err = aio_error(&aiocb);
ret = aio_return(&aiocb);
if (err != 0) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/8-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/8-1.c
index 21e5615..5f6b535 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/8-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/8-1.c
@@ -61,8 +61,10 @@ int main()
exit(PTS_FAIL);
}
- while (aio_error(&aiocb) == EINPROGRESS) ;
- ret = aio_error(&aiocb);
+ do {
+ usleep(10000);
+ ret = aio_error(&aiocb);
+ } while (ret == EINPROGRESS);
if (ret != EBADF) {
printf(TNAME " errno is not EBADF %s\n", strerror(errno));
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/8-2.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/8-2.c
index d184bc2..b11cb1d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/8-2.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/8-2.c
@@ -74,8 +74,10 @@ int main()
exit(PTS_FAIL);
}
- while (aio_error(&aiocb) == EINPROGRESS) ;
- ret = aio_error(&aiocb);
+ do {
+ usleep(10000);
+ ret = aio_error(&aiocb);
+ } while (ret == EINPROGRESS);
if (ret != EBADF) {
printf(TNAME " errno is not EBADF %s\n", strerror(errno));
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/9-1.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/9-1.c
index 40ba68e..e368ce7 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/9-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/9-1.c
@@ -67,9 +67,12 @@ int main()
aiocb.aio_nbytes = BUF_SIZE;
if (aio_write(&aiocb) != -1) {
- while (aio_error(&aiocb) == EINPROGRESS) ;
+ int err;
+ do {
+ usleep(10000);
+ err = aio_error(&aiocb);
+ } while (err == EINPROGRESS);
- int err = aio_error(&aiocb);
int ret = aio_return(&aiocb);
if (ret != -1) {
diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/9-2.c
b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/9-2.c
index 21f20db..6450c77 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_write/9-2.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_write/9-2.c
@@ -67,9 +67,12 @@ int main()
aiocb.aio_nbytes = BUF_SIZE;
if (aio_write(&aiocb) != -1) {
- while (aio_error(&aiocb) == EINPROGRESS) ;
+ int err;
+ do {
+ usleep(10000);
+ err = aio_error(&aiocb);
+ } while (err == EINPROGRESS);
- int err = aio_error(&aiocb);
int ret = aio_return(&aiocb);
if (ret != -1) {
--
1.8.0
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list