# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-06-01 05:51+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "futex" msgstr "" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "futex - fast user-space locking" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<#include Elinux/futex.hE>\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The Linux kernel provides futexes (\"Fast user-space mutexes\") as a " "building block for fast user-space locking and semaphores. Futexes are very " "basic and lend themselves well for building higher-level locking " "abstractions such as mutexes, condition variables, read-write locks, " "barriers, and semaphores." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Most programmers will in fact not be using futexes directly but will instead " "rely on system libraries built on them, such as the Native POSIX Thread " "Library (NPTL) (see B(7))." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A futex is identified by a piece of memory which can be shared between " "processes or threads. In these different processes, the futex need not have " "identical addresses. In its bare form, a futex has semaphore semantics; it " "is a counter that can be incremented and decremented atomically; processes " "can wait for the value to become positive." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Futex operation occurs entirely in user space for the noncontended case. " "The kernel is involved only to arbitrate the contended case. As any sane " "design will strive for noncontention, futexes are also optimized for this " "situation." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In its bare form, a futex is an aligned integer which is touched only by " "atomic assembler instructions. This integer is four bytes long on all " "platforms. Processes can share this integer using B(2), via shared " "memory segments, or because they share memory space, in which case the " "application is commonly called multithreaded." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Semantics" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Any futex operation starts in user space, but it may be necessary to " "communicate with the kernel using the B(2) system call." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "To \"up\" a futex, execute the proper assembler instructions that will cause " "the host CPU to atomically increment the integer. Afterward, check if it " "has in fact changed from 0 to 1, in which case there were no waiters and the " "operation is done. This is the noncontended case which is fast and should " "be common." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the contended case, the atomic increment changed the counter from -1 (or " "some other negative number). If this is detected, there are waiters. User " "space should now set the counter to 1 and instruct the kernel to wake up any " "waiters using the B operation." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Waiting on a futex, to \"down\" it, is the reverse operation. Atomically " "decrement the counter and check if it changed to 0, in which case the " "operation is done and the futex was uncontended. In all other " "circumstances, the process should set the counter to -1 and request that the " "kernel wait for another process to up the futex. This is done using the " "B operation." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B(2) system call can optionally be passed a timeout specifying " "how long the kernel should wait for the futex to be upped. In this case, " "semantics are more complex and the programmer is referred to B(2) " "for more details. The same holds for asynchronous futex waiting." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "VERSIONS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Initial futex support was merged in Linux 2.5.7 but with different semantics " "from those described above. Current semantics are available from Linux " "2.5.40 onward." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NOTES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "To reiterate, bare futexes are not intended as an easy-to-use abstraction " "for end users. Implementors are expected to be assembly literate and to " "have read the sources of the futex user-space library referenced below." msgstr "" #. #-#-#-#-# archlinux: futex.7.pot (PACKAGE VERSION) #-#-#-#-# #. .SH AUTHORS #. .P #. 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 #. #-#-#-#-# debian-bookworm: futex.7.pot (PACKAGE VERSION) #-#-#-#-# #. .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 #. #-#-#-#-# debian-unstable: futex.7.pot (PACKAGE VERSION) #-#-#-#-# #. .SH AUTHORS #. .P #. 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 #. #-#-#-#-# fedora-40: futex.7.pot (PACKAGE VERSION) #-#-#-#-# #. .SH AUTHORS #. .P #. 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 #. #-#-#-#-# fedora-rawhide: futex.7.pot (PACKAGE VERSION) #-#-#-#-# #. .SH AUTHORS #. .P #. 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 #. #-#-#-#-# mageia-cauldron: futex.7.pot (PACKAGE VERSION) #-#-#-#-# #. .SH AUTHORS #. .P #. 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 #. #-#-#-#-# opensuse-leap-15-6: futex.7.pot (PACKAGE VERSION) #-#-#-#-# #. .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 #. #-#-#-#-# opensuse-tumbleweed: futex.7.pot (PACKAGE VERSION) #-#-#-#-# #. .SH AUTHORS #. .P #. 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 #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This man page illustrates the most common use of the B(2) " "primitives; it is by no means the only one." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(2), B(2), B(2), B(2), " "B(2), B(7)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I (proceedings " "of the Ottawa Linux Symposium 2002), futex example library, futex-*.tar.bz2 " "E<.UR https://mirrors.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/" "rusty/> E<.UE .>" msgstr "" #. type: TH #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "2022-10-30" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "" #. type: TH #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr ""