Re: [LTP] [PATCH] mq_timedsend/5-1: make parent has chance to sleep

Cyril Hrubis
2012-02-16T18:41:38Z

Hi!
> Child process sends the last signal before parent process enter the
> final sleep sometimes, so sleep in parent will not be interrupted then
> the case fails.
> Sleep 1 second before send the last signal in child to make sure parent
> enter the final sleep.
>
> Signed-off-by: Kang Kai <kai.kang@windriver.com>
> ---
> .../conformance/interfaces/mq_timedsend/5-1.c | 5 ++++-
> 1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedsend/5-1.c b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedsend/5-1.c
> index 96daf72..77fe2e0 100644
> --- a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedsend/5-1.c
> +++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedsend/5-1.c
> @@ -82,6 +82,9 @@ int main()
> sleep(1); // give parent time to set up handler
> for (i=0; i<MAXMSG+1; i++) {
> mq_timedsend(gqueue, msgptr, strlen(msgptr), 1, &ts);
> + /* make sure parent enter the final sleep */
> + if (i == MAXMSG)
> + sleep(1);
> /* send signal to parent each time message is sent */
> kill(getppid(), SIGABRT);
> }
> @@ -138,4 +141,4 @@ int main()
> }
>
> return PTS_UNRESOLVED;
> -}
> \ No newline at end of file
> +}

Okay, I think I see the possible race condition between the mq_recieve()
in parent and the mq_timedsend() in the the child.

Commited, thanks (and sorry for the delay).

--
Cyril Hrubis
chrubis@suse.cz

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.