Does the mq_timedreceive() fully implement the POSIX specification?
Hi All, I am doing POSIX test on linux. And for mq_timedreceive() in POSIX spec 2008 Issue 7, Line 43787: The validity of the abstime parameter need not be checked if a message can be removed from the message queue immediately. But when I run test case mq_timedreceive/10-2 of POSIX suite (can be viewed at : http://ltp.git.sourceforge.net/git/gitweb.cgi?p=ltp/ltp.git;a=blob;f=testcas...), mq_timedreceive() could get the message without wait, but the timeout is still validated. Do we intend to do so, or the implementation needs update? Thanks and Regards, Kai
Hi! On Mon, 2012-02-13 at 10:30 +0800, K K wrote: [....]
I am doing POSIX test on linux. And for mq_timedreceive() in POSIX spec 2008 Issue 7, Line 43787:
The validity of the abstime parameter need not be checked if a message can be removed from the message queue immediately.
But when I run test case mq_timedreceive/10-2 of POSIX suite (can be viewed at : http://ltp.git.sourceforge.net/git/gitweb.cgi?p=ltp/ltp.git;a=blob;f=testcas...), mq_timedreceive() could get the message without wait, but the timeout is still validated.
Do we intend to do so, or the implementation needs update?
I'm not a native English speaker but there is IMHO no problem as the above quoted part of POSIX simply does not require the check in that case. But it doesn't forbid the check. Bernd -- Bernd Petrovitsch Email : bernd@petrovitsch.priv.at LUGA : http://www.luga.at
Hi Bernd, On Mon, Feb 13, 2012 at 4:51 PM, Bernd Petrovitsch < bernd@petrovitsch.priv.at> wrote:
Hi!
On Mon, 2012-02-13 at 10:30 +0800, K K wrote: [....]
I am doing POSIX test on linux. And for mq_timedreceive() in POSIX spec 2008 Issue 7, Line 43787:
The validity of the abstime parameter need not be checked if a message can be removed from the message queue immediately.
But when I run test case mq_timedreceive/10-2 of POSIX suite (can be viewed at :
http://ltp.git.sourceforge.net/git/gitweb.cgi?p=ltp/ltp.git;a=blob;f=testcas... ),
mq_timedreceive() could get the message without wait, but the timeout is still validated.
Do we intend to do so, or the implementation needs update?
I'm not a native English speaker but there is IMHO no problem as the above quoted part of POSIX simply does not require the check in that case. But it doesn't forbid the check.
That's my misunderstanding. Thanks for your reply. Regards, Kai
Bernd -- Bernd Petrovitsch Email : bernd@petrovitsch.priv.at LUGA : http://www.luga.at
Hi Bernd, On Tue, Feb 14, 2012 at 10:07 AM, K K <knewsgroup@gmail.com> wrote:
Hi Bernd,
On Mon, Feb 13, 2012 at 4:51 PM, Bernd Petrovitsch < bernd@petrovitsch.priv.at> wrote:
Hi!
On Mon, 2012-02-13 at 10:30 +0800, K K wrote: [....]
I am doing POSIX test on linux. And for mq_timedreceive() in POSIX spec 2008 Issue 7, Line 43787:
The validity of the abstime parameter need not be checked if a message can be removed from the message queue immediately.
Sorry about that I miss the previous sentence, the whole paragraph is: Under no circumstance shall the operation fail with a timeout if a message can be removed from the message queue immediately. The validity of the abstime parameter need not be checked if a message can be removed from the message queue immediately. It seems that the first sentence is more affirmative that the timeout should not be checked when a message can be removed from message queue immediately. How do you think? Thanks, Kai
Hi! [ also Cc: the email address on the top on the test case. Therefore self-quoting for the rest of the thread. ] On Mon, 2012-02-13 at 09:51 +0100, Bernd Petrovitsch wrote:
On Mon, 2012-02-13 at 10:30 +0800, K K wrote: [....]
I am doing POSIX test on linux. And for mq_timedreceive() in POSIX spec 2008 Issue 7, Line 43787:
The validity of the abstime parameter need not be checked if a message can be removed from the message queue immediately.
But when I run test case mq_timedreceive/10-2 of POSIX suite (can be viewed at : http://ltp.git.sourceforge.net/git/gitweb.cgi?p=ltp/ltp.git;a=blob;f=testcas...), mq_timedreceive() could get the message without wait, but the timeout is still validated.
Do we intend to do so, or the implementation needs update?
I'm not a native English speaker but there is IMHO no problem as the above quoted part of POSIX simply does not require the check in that case. But it doesn't forbid the check.
On Die, 2012-02-14 at 14:44 +0800, K K wrote: [...]
Under no circumstance shall the operation fail with a timeout if a message can be removed from the message queue immediately. The validity of the abstime parameter need not be checked if a message can be removed from the message queue immediately.
It seems that the first sentence is more affirmative that the timeout should not be checked when a message can be removed from message queue immediately. How do you think?
Well, and the sys-call actually does not fail with a *timeout* - which is indicated with a return value == -1 and errno == ETIMEDOUT if I read http://pubs.opengroup.org/onlinepubs/009695399/functions/mq_receive.html correctly - but with some another error - return value == -1 and errno == EINVAL. So the first quoted sentence actually doesn't apply IMHO. The test description in the second comment on http://ltp.git.sourceforge.net/git/gitweb.cgi?p=ltp/ltp.git;a=blob;f=testcas... reparaphrases the above quoted part incorrectly IMHO. The test implements the description at the top though. Bernd -- Bernd Petrovitsch Email : bernd@petrovitsch.priv.at LUGA : http://www.luga.at
participants (2)
-
Bernd Petrovitsch -
K K