#, fuzzy msgid "" msgstr "" "Project-Id-Version: man-pages-l10n VERSION\n" "POT-Creation-Date: 2014-07-17 17:53+0900\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: man-pages/man2/futex.2:53 #, no-wrap msgid "FUTEX" msgstr "" #. type: TH #: man-pages/man2/futex.2:53 #, no-wrap msgid "2014-05-21" msgstr "" #. type: TH #: man-pages/man2/futex.2:53 #, no-wrap msgid "Linux" msgstr "" #. type: TH #: man-pages/man2/futex.2:53 #, no-wrap msgid "Linux Programmer's Manual" msgstr "" #. type: SH #: man-pages/man2/futex.2:54 #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:56 msgid "futex - fast user-space locking" msgstr "" #. type: SH #: man-pages/man2/futex.2:56 #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:61 #, no-wrap msgid "B<#include Elinux/futex.hE>\n" "B<#include Esys/time.hE>\n" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:64 #, no-wrap msgid "" "BIB<, int >IB<, int >IB<, const struct " "timespec *>IB<,>\n" msgstr "" #. int *? void *? u32 *? #. type: Plain text #: man-pages/man2/futex.2:67 #, no-wrap msgid "B< int *>IB<, int >IB<);>\n" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:70 msgid "I: There is no glibc wrapper for this system call; see NOTES." msgstr "" #. type: SH #: man-pages/man2/futex.2:70 #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:86 msgid "" "The B() system call provides a method for a program to wait for a " "value at a given address to change, and a method to wake up anyone waiting " "on a particular address (while the addresses for the same memory in separate " "processes may not be equal, the kernel maps them internally so the same " "memory mapped in different locations will correspond for B() calls). " " This system call is typically used to implement the contended case of a " "lock in shared memory, as described in B(7)." msgstr "" #. type: Plain text #: man-pages/man2/futex.2:93 msgid "" "When a B(7) operation did not finish uncontended in user space, a " "call needs to be made to the kernel to arbitrate. Arbitration can either " "mean putting the calling process to sleep or, conversely, waking a waiting " "process." msgstr "" #. type: Plain text #: man-pages/man2/futex.2:100 msgid "" "Callers of this function are expected to adhere to the semantics as set out " "in B(7). As these semantics involve writing nonportable assembly " "instructions, this in turn probably means that most users will in fact be " "library authors and not general application developers." msgstr "" #. type: Plain text #: man-pages/man2/futex.2:108 msgid "" "The I argument needs to point to an aligned integer which stores the " "counter. The operation to execute is passed via the I argument, along " "with a value I." msgstr "" #. type: Plain text #: man-pages/man2/futex.2:110 msgid "Five operations are currently defined:" msgstr "" #. type: TP #: man-pages/man2/futex.2:110 man-pages/man2/futex.2:223 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:133 msgid "" "This operation atomically verifies that the futex address I still " "contains the value I, and sleeps awaiting B on this futex " "address. If the I argument is non-NULL, its contents specify the " "duration of the wait. (This interval will be rounded up to the system clock " "granularity, and kernel scheduling delays mean that the blocking interval " "may overrun by a small amount.) If I is NULL, the call blocks " "indefinitely. The arguments I and I are ignored." msgstr "" #. type: Plain text #: man-pages/man2/futex.2:141 msgid "" "For B(7), this call is executed if decrementing the count gave a " "negative value (indicating contention), and will sleep until another process " "releases the futex and executes the B operation." msgstr "" #. type: TP #: man-pages/man2/futex.2:141 man-pages/man2/futex.2:229 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:152 msgid "" "This operation wakes at most I processes waiting on this futex address " "(i.e., inside B). The arguments I, I and " "I are ignored." msgstr "" #. type: Plain text #: man-pages/man2/futex.2:158 msgid "" "For B(7), this is executed if incrementing the count showed that " "there were waiters, once the futex value has been set to 1 (indicating that " "it is available)." msgstr "" #. type: TP #: man-pages/man2/futex.2:158 #, no-wrap msgid "B (present up to and including Linux 2.6.25)" msgstr "" #. , suitable for .BR poll (2). #. type: Plain text #: man-pages/man2/futex.2:174 msgid "" "To support asynchronous wakeups, this operation associates a file descriptor " "with a futex. If another process executes a B, the process will " "receive the signal number that was passed in I. The calling process " "must close the returned file descriptor after use. The arguments " "I, I and I are ignored." msgstr "" #. type: Plain text #: man-pages/man2/futex.2:179 msgid "" "To prevent race conditions, the caller should test if the futex has been " "upped after B returns." msgstr "" #. type: Plain text #: man-pages/man2/futex.2:183 msgid "" "Because it was inherently racy, B has been removed from Linux 2.6." "26 onward." msgstr "" #. type: TP #: man-pages/man2/futex.2:183 #, no-wrap msgid "B (since Linux 2.5.70)" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:198 msgid "" "This operation was introduced in order to avoid a \"thundering herd\" effect " "when B is used and all processes woken up need to acquire " "another futex. This call wakes up I processes, and requeues all other " "waiters on the futex at address I. The arguments I and " "I are ignored." msgstr "" #. type: TP #: man-pages/man2/futex.2:198 #, no-wrap msgid "B (since Linux 2.6.7)" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:216 msgid "" "There was a race in the intended use of B, so " "B was introduced. This is similar to B, " "but first checks whether the location I still contains the value " "I. If not, the operation fails with the error B. The " "argument I is ignored." msgstr "" #. type: SH #: man-pages/man2/futex.2:216 #, no-wrap msgid "RETURN VALUE" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:223 msgid "" "In the event of an error, all operations return -1, and set I to " "indicate the error. The return value on success depends on the operation, " "as described in the following list:" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:229 msgid "" "Returns 0 if the process was woken by a B call. See ERRORS for " "the various possible error returns." msgstr "" #. type: Plain text #: man-pages/man2/futex.2:232 man-pages/man2/futex.2:238 man-pages/man2/futex.2:241 msgid "Returns the number of processes woken up." msgstr "" #. type: TP #: man-pages/man2/futex.2:232 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:235 msgid "Returns the new file descriptor associated with the futex." msgstr "" #. type: TP #: man-pages/man2/futex.2:235 #, no-wrap msgid "B" msgstr "" #. type: TP #: man-pages/man2/futex.2:238 #, no-wrap msgid "B" msgstr "" #. type: SH #: man-pages/man2/futex.2:241 #, no-wrap msgid "ERRORS" msgstr "" #. type: TP #: man-pages/man2/futex.2:242 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:245 msgid "No read access to futex memory." msgstr "" #. type: TP #: man-pages/man2/futex.2:245 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:256 msgid "" "B detected that the value pointed to by I is not " "equal to the expected value I. (This probably indicates a race; use " "the safe B now.)" msgstr "" #. type: TP #: man-pages/man2/futex.2:256 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:261 msgid "Error retrieving I information from user space." msgstr "" #. type: TP #: man-pages/man2/futex.2:261 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:268 msgid "" "A B operation was interrupted by a signal (see B(7)) or " "a spurious wakeup." msgstr "" #. type: TP #: man-pages/man2/futex.2:268 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:271 msgid "Invalid argument." msgstr "" #. type: TP #: man-pages/man2/futex.2:271 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:274 msgid "The system limit on the total number of open files has been reached." msgstr "" #. type: TP #: man-pages/man2/futex.2:274 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:278 msgid "Invalid operation specified in I." msgstr "" #. type: TP #: man-pages/man2/futex.2:278 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:283 msgid "Timeout during the B operation." msgstr "" #. type: TP #: man-pages/man2/futex.2:283 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:293 msgid "" "I was B and the value pointed to by I was not equal " "to the expected value I at the time of the call." msgstr "" #. type: SH #: man-pages/man2/futex.2:293 #, no-wrap msgid "VERSIONS" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:303 msgid "" "Initial futex support was merged in Linux 2.5.7 but with different semantics " "from what was described above. A 4-argument system call with the semantics " "described in this page was introduced in Linux 2.5.40. In Linux 2.5.70, one " "argument was added. In Linux 2.6.7, a sixth argument was added\\(emmessy, " "especially on the s390 architecture." msgstr "" #. type: SH #: man-pages/man2/futex.2:303 #, no-wrap msgid "CONFORMING TO" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:305 msgid "This system call is Linux-specific." msgstr "" #. type: SH #: man-pages/man2/futex.2:305 #, no-wrap msgid "NOTES" msgstr "" #. .SH "AUTHORS" #. .PP #. Futexes were designed and worked on by #. Hubertus Franke (IBM Thomas J. Watson Research Center), #. Matthew Kirkwood, Ingo Molnar (Red Hat) #. and Rusty Russell (IBM Linux Technology Center). #. This page written by bert hubert. #. type: Plain text #: man-pages/man2/futex.2:319 msgid "" "To reiterate, bare futexes are not intended as an easy-to-use abstraction " "for end-users. (There is no wrapper function for this system call in glibc." ") Implementors are expected to be assembly literate and to have read the " "sources of the futex user-space library referenced below." msgstr "" #. type: SH #: man-pages/man2/futex.2:319 #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:322 msgid "B(2), B(7)" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:325 msgid "" "I (proceedings " "of the Ottawa Linux Symposium 2002), online at" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:328 msgid "" "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> " "E<.UE>" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:330 msgid "Futex example library, futex-*.tar.bz2 at" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:333 msgid "" "E<.UR ftp://ftp.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> E<." "UE>" msgstr "" #. type: SH #: man-pages/man2/futex.2:333 #, no-wrap msgid "COLOPHON" msgstr "" #. type: Plain text #: man-pages/man2/futex.2:341 msgid "" "This page is part of release 3.70 of the Linux I project. A " "description of the project, information about reporting bugs, and the latest " "version of this page, can be found at \\%http://www.kernel.org/doc/man-pages/" "." msgstr ""