2015-04-27 20:37:11

by Pavel Machek

[permalink] [raw]
Subject: Re: Revised futex(2) man page for review

Hi!

> The FUTEX_WAIT_OP operation is equivalent to execute the follow???
> ing code atomically and totally ordered with respect to other
> futex operations on any of the two supplied futex words:

"to executing"?

> The operation and comparison that are to be performed are
> encoded in the bits of the argument val3. Pictorially, the
> encoding is:
>
> +---+---+-----------+-----------+
> |op |cmp| oparg | cmparg |
> +---+---+-----------+-----------+
> 4 4 12 12 <== # of bits
>

:-)

> RETURN VALUE
> In the event of an error, all operations return -1 and set errno to
> indicate the cause of the error. The return value on success depends
> on the operation, as described in the following list:

Did you say (at the begining) that there is no glibc wrapper?

> EINVAL The operation in futex_op is one of those that employs a time???
> out, but the supplied timeout argument was invalid (tv_sec was
> less than zero, or tv_nsec was not less than 1000,000,000).

1,000...?

> NOTES
> Glibc does not provide a wrapper for this system call; call it using
> syscall(2).

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


Subject: Re: Revised futex(2) man page for review

Hello Pavel,

On 04/27/2015 10:37 PM, Pavel Machek wrote:
> Hi!
>
>> The FUTEX_WAIT_OP operation is equivalent to execute the follow???
>> ing code atomically and totally ordered with respect to other
>> futex operations on any of the two supplied futex words:
>
> "to executing"?

Yep. Fixed.

>> The operation and comparison that are to be performed are
>> encoded in the bits of the argument val3. Pictorially, the
>> encoding is:
>>
>> +---+---+-----------+-----------+
>> |op |cmp| oparg | cmparg |
>> +---+---+-----------+-----------+
>> 4 4 12 12 <== # of bits
>>
>
> :-)
>
>> RETURN VALUE
>> In the event of an error, all operations return -1 and set errno to
>> indicate the cause of the error. The return value on success depends
>> on the operation, as described in the following list:
>
> Did you say (at the begining) that there is no glibc wrapper?

Yes, this could be clearer. I changed it to

RETURN VALUE
In the event of an error (and assuming that futex() was invoked
via syscall(2)), all operations return -1 and set errno to indi‐
cate the cause of the error.

>> EINVAL The operation in futex_op is one of those that employs a time???
>> out, but the supplied timeout argument was invalid (tv_sec was
>> less than zero, or tv_nsec was not less than 1000,000,000).
>
> 1,000...?

Fixed.

Thanks for the comments!

Cheers,

Michael


--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/