At linux, the aio_suspend tests report following error: aio_suspend/4-1.c aio_suspend() should set errno to EAGAIN: 4 (Interrupted system call)
Man page said: The aio_suspend() function suspends the calling process until at least one of the asynchronous I/O requests in the list cblist of length n have completed, a signal is delivered, or timeout is not NULL and the time interval it indicates has passed. When a signal is delivered, whether should aio_suspend return immediately although we have set a SA_RESTART flag for this signal action? Maybe the followed path is necessary. ------------------------------------------------------------------------------------------------------ We just care the selected IO request, and set a little timeout. Signed-off-by: Bian Naimeng <[email protected]> --- conformance/interfaces/aio_suspend/4-1.c | 13 +++++++------ 1 files changed, 7 insertions(+), 6 deletions(-) diff --git a/conformance/interfaces/aio_suspend/4-1.c b/conformance/interfaces/aio_suspend/4-1.c index 260c26a..dd8e5f0 100644 --- a/conformance/interfaces/aio_suspend/4-1.c +++ b/conformance/interfaces/aio_suspend/4-1.c @@ -47,8 +47,7 @@ int received_all = 0; void sigrt1_handler(int signum, siginfo_t *info, void *context) { - if (info->si_value.sival_int == WAIT_FOR_AIOCB) - received_selected = 1; + received_selected = 1; } void @@ -68,7 +67,7 @@ main () char *bufs; struct sigaction action; struct sigevent event; - struct timespec ts = {0, 10000000}; /* 10 ms */ + struct timespec ts = {0, 1000}; /* 1 us */ int errors = 0; int ret; int err; @@ -123,9 +122,11 @@ main () aiocbs[i]->aio_lio_opcode = LIO_READ; /* Use SIRTMIN+1 for individual completions */ - aiocbs[i]->aio_sigevent.sigev_notify = SIGEV_SIGNAL; - aiocbs[i]->aio_sigevent.sigev_signo = SIGRTMIN+1; - aiocbs[i]->aio_sigevent.sigev_value.sival_int = i; + if (i == WAIT_FOR_AIOCB) { + aiocbs[i]->aio_sigevent.sigev_notify = SIGEV_SIGNAL; + aiocbs[i]->aio_sigevent.sigev_signo = SIGRTMIN+1; + aiocbs[i]->aio_sigevent.sigev_value.sival_int = i; + } } /* Use SIGRTMIN+2 for list completion */ -- 1.7.0.4 -- Regards Bian Naimeng ------------------------------------------------------------------------------ Nokia and AT&T present the 2010 Calling All Innovators-North America contest Create new apps & games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
