diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /po/ro/man3/pthread_cond_init.3.po | |
parent | Initial commit. (diff) | |
download | manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip |
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'po/ro/man3/pthread_cond_init.3.po')
-rw-r--r-- | po/ro/man3/pthread_cond_init.3.po | 880 |
1 files changed, 880 insertions, 0 deletions
diff --git a/po/ro/man3/pthread_cond_init.3.po b/po/ro/man3/pthread_cond_init.3.po new file mode 100644 index 00000000..8d687e44 --- /dev/null +++ b/po/ro/man3/pthread_cond_init.3.po @@ -0,0 +1,880 @@ +# Romanian translation of manpages +# This file is distributed under the same license as the manpages-l10n package. +# Copyright © of this file: +# Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2024. +msgid "" +msgstr "" +"Project-Id-Version: manpages-l10n 4.21.0\n" +"POT-Creation-Date: 2024-03-01 17:04+0100\n" +"PO-Revision-Date: 2024-03-06 12:06+0100\n" +"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n" +"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2;\n" +"X-Generator: Poedit 3.2.2\n" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "pthread_cond_init" +msgstr "pthread_cond_init" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-10-31" +msgstr "31 octombrie 2023" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "Pagini de manual de Linux 6.06" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "NAME" +msgstr "NUME" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"pthread_cond_init, pthread_cond_signal, pthread_cond_broadcast, " +"pthread_cond_wait, pthread_cond_timedwait, pthread_cond_destroy - operations " +"on conditions" +msgstr "" +"pthread_cond_init, pthread_cond_signal, pthread_cond_broadcast, " +"pthread_cond_wait, pthread_cond_timedwait, pthread_cond_destroy - operații " +"asupra condițiilor" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "SYNOPSIS" +msgstr "REZUMAT" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +msgid "B<#include E<lt>pthread.hE<gt>>" +msgstr "B<#include E<lt>pthread.hE<gt>>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +msgid "B<pthread_cond_t >I<cond>B< = PTHREAD_COND_INITIALIZER;>" +msgstr "B<pthread_cond_t >I<cond>B< = PTHREAD_COND_INITIALIZER;>" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"B<int pthread_cond_init(pthread_cond_t *>I<cond>B<, pthread_condattr_t " +"*>I<cond_attr>B<);> B<int pthread_cond_signal(pthread_cond_t *>I<cond>B<);> " +"B<int pthread_cond_broadcast(pthread_cond_t *>I<cond>B<);> B<int " +"pthread_cond_wait(pthread_cond_t *>I<cond>B<, pthread_mutex_t *>I<mutex>B<);" +"> B<int pthread_cond_timedwait(pthread_cond_t *>I<cond>B<, pthread_mutex_t " +"*>I<mutex>B<, const struct timespec *>I<abstime>B<);> B<int " +"pthread_cond_destroy(pthread_cond_t *>I<cond>B<);>" +msgstr "" +"B<int pthread_cond_init(pthread_cond_t *>I<cond>B<, pthread_condattr_t " +"*>I<cond_attr>B<);> B<int pthread_cond_signal(pthread_cond_t *>I<cond>B<);> " +"B<int pthread_cond_broadcast(pthread_cond_t *>I<cond>B<);> B<int " +"pthread_cond_wait(pthread_cond_t *>I<cond>B<, pthread_mutex_t *>I<mutex>B<);" +"> B<int pthread_cond_timedwait(pthread_cond_t *>I<cond>B<, pthread_mutex_t " +"*>I<mutex>B<, const struct timespec *>I<abstime>B<);> B<int " +"pthread_cond_destroy(pthread_cond_t *>I<cond>B<);>" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIERE" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"A condition (short for ``condition variable'') is a synchronization device " +"that allows threads to suspend execution and relinquish the processors until " +"some predicate on shared data is satisfied. The basic operations on " +"conditions are: signal the condition (when the predicate becomes true), and " +"wait for the condition, suspending the thread execution until another thread " +"signals the condition." +msgstr "" +"O condiție (prescurtare de la „variabilă de condiție”) este un mecanism de " +"sincronizare care permite firelor de execuție să suspende execuția și să " +"cedeze procesoarele până când este satisfăcută o anumită condiție (un " +"predicat) privind datele partajate. Operațiile de bază ale condițiilor sunt: " +"semnalizarea condiției (când predicatul devine adevărat) și așteptarea " +"condiției, suspendând execuția firului până când un alt fir semnalizează " +"condiția." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +msgid "" +"A condition variable must always be associated with a mutex, to avoid the " +"race condition where a thread prepares to wait on a condition variable and " +"another thread signals the condition just before the first thread actually " +"waits on it." +msgstr "" +"O variabilă de condiție trebuie să fie întotdeauna asociată cu un mutex, " +"pentru a evita condiția de „competiție pentru obținerea de date” în care un " +"fir se pregătește să aștepte pe o variabilă de condiție și un alt fir " +"semnalizează condiția chiar înainte ca primul fir să aștepte efectiv pe ea." + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"B<pthread_cond_init> initializes the condition variable I<cond>, using the " +"condition attributes specified in I<cond_attr>, or default attributes if " +"I<cond_attr> is B<NULL>. The LinuxThreads implementation supports no " +"attributes for conditions, hence the I<cond_attr> parameter is actually " +"ignored." +msgstr "" +"B<pthread_cond_init> inițializează variabila de condiție I<cond>, utilizând " +"atributele de condiție specificate în I<cond_attr> sau atributele implicite " +"dacă I<cond_attr> este B<NULL>. Implementarea „LinuxThreads” nu acceptă " +"atribute pentru condiții, prin urmare parametrul I<cond_attr> este de fapt " +"ignorat." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +msgid "" +"Variables of type B<pthread_cond_t> can also be initialized statically, " +"using the constant B<PTHREAD_COND_INITIALIZER>." +msgstr "" +"Variabilele de tip B<pthread_cond_t> pot fi, de asemenea, inițializate " +"static, utilizând constanta B<PTHREAD_COND_INITIALIZER>." + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"B<pthread_cond_signal> restarts one of the threads that are waiting on the " +"condition variable I<cond>. If no threads are waiting on I<cond>, nothing " +"happens. If several threads are waiting on I<cond>, exactly one is " +"restarted, but it is not specified which." +msgstr "" +"B<pthread_cond_signal> repornește unul dintre firele care așteaptă variabila " +"de condiție I<cond>. În cazul în care niciun fir de execuție nu așteaptă pe " +"I<cond>, nu se întâmplă nimic. În cazul în care mai multe fire așteaptă pe " +"I<cond>, se repornește exact unul dintre ele, dar nu se specifică care." + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"B<pthread_cond_broadcast> restarts all the threads that are waiting on the " +"condition variable I<cond>. Nothing happens if no threads are waiting on " +"I<cond>." +msgstr "" +"B<pthread_cond_broadcast> repornește toate firele care așteaptă variabila de " +"condiție I<cond>. Nu se întâmplă nimic dacă niciun fir de execuție nu " +"așteaptă pe I<cond>." + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"B<pthread_cond_wait> atomically unlocks the I<mutex> (as per " +"B<pthread_unlock_mutex>) and waits for the condition variable I<cond> to be " +"signaled. The thread execution is suspended and does not consume any CPU " +"time until the condition variable is signaled. The I<mutex> must be locked " +"by the calling thread on entrance to B<pthread_cond_wait>. Before returning " +"to the calling thread, B<pthread_cond_wait> re-acquires I<mutex> (as per " +"B<pthread_lock_mutex>)." +msgstr "" +"B<pthread_cond_wait> deblochează atomic I<mutex> (conform " +"B<pthread_unlock_mutex>) și așteaptă ca variabila de condiție I<cond> să fie " +"semnalată. Execuția firului este suspendată și nu consumă timp de procesare " +"până când variabila de condiție este semnalată. I<mutex> trebuie să fie " +"blocată de firul apelant la intrarea în B<pthread_cond_wait>. Înainte de a " +"reveni la firul apelant, B<pthread_cond_wait> recuperează I<mutex> (conform " +"B<pthread_lock_mutex>)." + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"Unlocking the mutex and suspending on the condition variable is done " +"atomically. Thus, if all threads always acquire the mutex before signaling " +"the condition, this guarantees that the condition cannot be signaled (and " +"thus ignored) between the time a thread locks the mutex and the time it " +"waits on the condition variable." +msgstr "" +"Deblocarea mutex-ului și suspendarea pe variabila de condiție se face " +"atomic. Astfel, dacă toate firele achiziționează întotdeauna mutex-ul " +"înainte de a semnaliza condiția, acest lucru garantează că condiția nu poate " +"fi semnalată (și, prin urmare, ignorată) între momentul în care un fir " +"blochează mutex-ul și momentul în care așteaptă pe variabila de condiție." + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"B<pthread_cond_timedwait> atomically unlocks I<mutex> and waits on I<cond>, " +"as B<pthread_cond_wait> does, but it also bounds the duration of the wait. " +"If I<cond> has not been signaled within the amount of time specified by " +"I<abstime>, the mutex I<mutex> is re-acquired and B<pthread_cond_timedwait> " +"returns the error B<ETIMEDOUT>. The I<abstime> parameter specifies an " +"absolute time, with the same origin as B<time>(2) and B<gettimeofday>(2): an " +"I<abstime> of 0 corresponds to 00:00:00 GMT, January 1, 1970." +msgstr "" +"B<pthread_cond_timedwait> deblochează atomic I<mutex> și așteaptă pe " +"I<cond>, la fel ca B<pthread_cond_wait>, dar limitează și durata așteptării. " +"Dacă I<cond> nu a fost semnalată în intervalul de timp specificat de " +"I<abstime>, mutex-ul I<mutex> este reacceptat din nou, iar " +"B<pthread_cond_timedwait> returneazǎ eroarea B<ETIMEDOUT>. Parametrul " +"I<abstime> specifică un timp absolut, cu aceeași origine ca și B<time>(2) și " +"B<gettimeofday>(2): un I<abstime> de 0 corespunde la 00:00:00 GMT, 1 " +"ianuarie 1970." + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"B<pthread_cond_destroy> destroys a condition variable, freeing the resources " +"it might hold. No threads must be waiting on the condition variable on " +"entrance to B<pthread_cond_destroy>. In the LinuxThreads implementation, no " +"resources are associated with condition variables, thus " +"B<pthread_cond_destroy> actually does nothing except checking that the " +"condition has no waiting threads." +msgstr "" +"B<pthread_cond_destroy> distruge o variabilă de condiție, eliberând " +"resursele pe care le-ar putea conține. La intrarea în " +"B<pthread_cond_destroy> nu trebuie să existe fire de execuție care să " +"aștepte variabila de condiție. În implementarea „LinuxThreads”, nu există " +"resurse asociate variabilelor de condiție, astfel încât " +"B<pthread_cond_destroy> nu face de fapt nimic, cu excepția verificării " +"faptului că nu există fire de execuție în așteptare." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "CANCELLATION" +msgstr "ANULARE" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"B<pthread_cond_wait> and B<pthread_cond_timedwait> are cancellation points. " +"If a thread is cancelled while suspended in one of these functions, the " +"thread immediately resumes execution, then locks again the I<mutex> argument " +"to B<pthread_cond_wait> and B<pthread_cond_timedwait>, and finally executes " +"the cancellation. Consequently, cleanup handlers are assured that I<mutex> " +"is locked when they are called." +msgstr "" +"B<pthread_cond_wait> și B<pthread_cond_timedwait> sunt puncte de anulare. " +"Dacă un fir este anulat în timp ce este suspendat într-una din aceste " +"funcții, firul își reia imediat execuția, apoi blochează din nou argumentul " +"I<mutex> la B<pthread_cond_wait> și B<pthread_cond_timedwait> și, în final, " +"execută anularea. În consecință, gestionarii de curățare sunt asigurați că " +"I<mutex> este blocat atunci când sunt apelați." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "ASYNC-SIGNAL SAFETY" +msgstr "SIGURANȚA SEMNALELOR ASINCRONE" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"The condition functions are not async-signal safe, and should not be called " +"from a signal handler. In particular, calling B<pthread_cond_signal> or " +"B<pthread_cond_broadcast> from a signal handler may deadlock the calling " +"thread." +msgstr "" +"Funcțiile de condiție nu sunt sigure pentru semnale asincrone și nu ar " +"trebui să fie apelate de la un gestionar de semnal. În special, apelarea " +"B<pthread_cond_signal> sau B<pthread_cond_broadcast> de la un gestionar de " +"semnal poate bloca firul apelant." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "RETURN VALUE" +msgstr "VALOAREA RETURNATĂ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +msgid "" +"All condition variable functions return 0 on success and a non-zero error " +"code on error." +msgstr "" +"Toate funcțiile de variabilă de condiție returnează 0 în caz de succes și un " +"cod de eroare diferit de zero în caz de eroare." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "ERRORS" +msgstr "ERORI-IEȘIRE" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +msgid "" +"B<pthread_cond_init>, B<pthread_cond_signal>, B<pthread_cond_broadcast>, and " +"B<pthread_cond_wait> never return an error code." +msgstr "" +"B<pthread_cond_init>, B<pthread_cond_signal>, B<pthread_cond_broadcast> și " +"B<pthread_cond_wait> nu returnează niciodată un cod de eroare." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +msgid "" +"The B<pthread_cond_timedwait> function returns the following error codes on " +"error:" +msgstr "" +"Funcția B<pthread_cond_timedwait> returnează următoarele coduri de eroare în " +"caz de eroare:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "B<ETIMEDOUT>" +msgstr "B<ETIMEDOUT>" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"The condition variable was not signaled until the timeout specified by " +"I<abstime>." +msgstr "" +"Variabila de condiție nu a fost semnalată până la expirarea timpului de " +"așteptare specificat de I<abstime>." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "B<EINTR>" +msgstr "B<EINTR>" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "B<pthread_cond_timedwait> was interrupted by a signal." +msgstr "B<pthread_cond_timedwait> a fost întrerupt de un semnal." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +msgid "" +"The B<pthread_cond_destroy> function returns the following error code on " +"error:" +msgstr "" +"Funcția B<pthread_cond_destroy> returnează următorul cod de eroare în caz de " +"eroare:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "B<EBUSY>" +msgstr "B<EBUSY>" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "Some threads are currently waiting on I<cond>." +msgstr "Unele fire sunt în prezent în așteptare pe I<cond>." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "SEE ALSO" +msgstr "CONSULTAȚI ȘI" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +msgid "" +"B<pthread_condattr_init>(3), B<pthread_mutex_lock>(3), " +"B<pthread_mutex_unlock>(3), B<gettimeofday>(2), B<nanosleep>(2)." +msgstr "" +"B<pthread_condattr_init>(3), B<pthread_mutex_lock>(3), " +"B<pthread_mutex_unlock>(3), B<gettimeofday>(2), B<nanosleep>(2)." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "EXAMPLE" +msgstr "EXEMPLU" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +msgid "" +"Consider two shared variables I<x> and I<y>, protected by the mutex I<mut>, " +"and a condition variable I<cond> that is to be signaled whenever I<x> " +"becomes greater than I<y>." +msgstr "" +"Se consideră două variabile partajate I<x> și I<y>, protejate de mutex-ul " +"I<mut>, și o variabilă de condiție I<cond> care trebuie semnalată ori de " +"câte ori I<x> devine mai mare decât I<y>." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "" +"B<int x,y;\n" +"pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;\n" +"pthread_cond_t cond = PTHREAD_COND_INITIALIZER;>\n" +msgstr "" +"B<int x,y;\n" +"pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;\n" +"pthread_cond_t cond = PTHREAD_COND_INITIALIZER;>\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +msgid "Waiting until I<x> is greater than I<y> is performed as follows:" +msgstr "" +"Așteptarea până când I<x> este mai mare decât I<y> se efectuează după cum " +"urmează:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "" +"B<pthread_mutex_lock(&mut);\n" +"while (x E<lt>= y) {\n" +" pthread_cond_wait(&cond, &mut);\n" +"}\n" +"/* operate on x and y */\n" +"pthread_mutex_unlock(&mut);>\n" +msgstr "" +"B<pthread_mutex_lock(&mut);\n" +"while (x E<lt>= y) {\n" +" pthread_cond_wait(&cond, &mut);\n" +"}\n" +"/* operează asupra lui x și y */\n" +"pthread_mutex_unlock(&mut);>\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +msgid "" +"Modifications on I<x> and I<y> that may cause I<x> to become greater than " +"I<y> should signal the condition if needed:" +msgstr "" +"Modificările lui I<x> și I<y> care pot face ca I<x> să devină mai mare decât " +"I<y> trebuie să semnalizeze condiția, dacă este necesar:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron +#, no-wrap +msgid "" +"B<pthread_mutex_lock(&mut);\n" +"/* modify x and y */\n" +"if (x E<gt> y) pthread_cond_broadcast(&cond);\n" +"pthread_mutex_unlock(&mut);>\n" +msgstr "" +"B<pthread_mutex_lock(&mut);\n" +"/* modificarea lui x și y */\n" +"if (x E<gt> y) pthread_cond_broadcast(&cond);\n" +"pthread_mutex_unlock(&mut);>\n" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"If it can be proved that at most one waiting thread needs to be waken up " +"(for instance, if there are only two threads communicating through I<x> and " +"I<y>), B<pthread_cond_signal> can be used as a slightly more efficient " +"alternative to B<pthread_cond_broadcast>. In doubt, use " +"B<pthread_cond_broadcast>." +msgstr "" +"Dacă se poate dovedi că cel mult un singur fir în așteptare trebuie să fie " +"trezit (de exemplu, dacă există doar două fire care comunică prin I<x> și " +"I<y>), B<pthread_cond_signal> poate fi utilizat ca o alternativă puțin mai " +"eficientă la B<pthread_cond_broadcast>. În caz de îndoială, utilizați " +"B<pthread_cond_broadcast>." + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"To wait for I<x> to become greater than I<y> with a timeout of 5 seconds, do:" +msgstr "" +"Pentru a aștepta ca I<x> să devină mai mare decât I<y> cu un timp de " +"așteptare de 5 secunde, faceți:" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "" +"B<struct timeval now;\n" +"struct timespec timeout;\n" +"int retcode;\n" +"\\&\n" +"pthread_mutex_lock(&mut);\n" +"gettimeofday(&now);\n" +"timeout.tv_sec = now.tv_sec + 5;\n" +"timeout.tv_nsec = now.tv_usec * 1000;\n" +"retcode = 0;\n" +"while (x E<lt>= y && retcode != ETIMEDOUT) {\n" +" retcode = pthread_cond_timedwait(&cond, &mut, &timeout);\n" +"}\n" +"if (retcode == ETIMEDOUT) {\n" +" /* timeout occurred */\n" +"} else {\n" +" /* operate on x and y */\n" +"}\n" +"pthread_mutex_unlock(&mut);>\n" +msgstr "" +"B<struct timeval now;\n" +"struct timespec timeout;\n" +"int retcode;\n" +"\\&\n" +"pthread_mutex_lock(&mut);\n" +"gettimeofday(&now);\n" +"timeout.tv_sec = now.tv_sec + 5;\n" +"timeout.tv_nsec = now.tv_usec * 1000;\n" +"retcode = 0;\n" +"while (x E<lt>= y && retcode != ETIMEDOUT) {\n" +" retcode = pthread_cond_timedwait(&cond, &mut, &timeout);\n" +"}\n" +"if (retcode == ETIMEDOUT) {\n" +" /* a avut loc terminarea timpului de așteptare */\n" +"} else {\n" +" /* operează asupra lui x și y */\n" +"}\n" +"pthread_mutex_unlock(&mut);>\n" + +#. type: TH +#: debian-bookworm debian-unstable +#, no-wrap +msgid "PTHREAD_COND" +msgstr "PTHREAD_COND" + +#. type: TH +#: debian-bookworm debian-unstable +#, no-wrap +msgid "LinuxThreads" +msgstr "LinuxThreads" + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"pthread_cond_init, pthread_cond_destroy, pthread_cond_signal, " +"pthread_cond_broadcast, pthread_cond_wait, pthread_cond_timedwait - " +"operations on conditions" +msgstr "" +"pthread_cond_init, pthread_cond_destroy, pthread_cond_signal, " +"pthread_cond_broadcast, pthread_cond_wait, pthread_cond_timedwait - operații " +"asupra condițiilor" + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"B<int pthread_cond_init(pthread_cond_t *>I<cond>B<, pthread_condattr_t " +"*>I<cond_attr>B<);>" +msgstr "" +"B<int pthread_cond_init(pthread_cond_t *>I<cond>B<, pthread_condattr_t " +"*>I<cond_attr>B<);>" + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "B<int pthread_cond_signal(pthread_cond_t *>I<cond>B<);>" +msgstr "B<int pthread_cond_signal(pthread_cond_t *>I<cond>B<);>" + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "B<int pthread_cond_broadcast(pthread_cond_t *>I<cond>B<);>" +msgstr "B<int pthread_cond_broadcast(pthread_cond_t *>I<cond>B<);>" + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"B<int pthread_cond_wait(pthread_cond_t *>I<cond>B<, pthread_mutex_t " +"*>I<mutex>B<);>" +msgstr "" +"B<int pthread_cond_wait(pthread_cond_t *>I<cond>B<, pthread_mutex_t " +"*>I<mutex>B<);>" + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"B<int pthread_cond_timedwait(pthread_cond_t *>I<cond>B<, pthread_mutex_t " +"*>I<mutex>B<, const struct timespec *>I<abstime>B<);>" +msgstr "" +"B<int pthread_cond_timedwait(pthread_cond_t *>I<cond>B<, pthread_mutex_t " +"*>I<mutex>B<, const struct timespec *>I<abstime>B<);>" + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "B<int pthread_cond_destroy(pthread_cond_t *>I<cond>B<);>" +msgstr "B<int pthread_cond_destroy(pthread_cond_t *>I<cond>B<);>" + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"A condition (short for ``condition variable'') is a synchronization device " +"that allows threads to suspend execution and relinquish the processors until " +"some predicate on shared data is satisfied. The basic operations on " +"conditions are: signal the condition (when the predicate becomes true), and " +"wait for the condition, suspending the thread execution until another thread " +"signals the condition." +msgstr "" +"O condiție (prescurtare de la „variabilă de condiție”) este un mecanism de " +"sincronizare care permite firelor de execuție să suspende execuția și să " +"cedeze procesoarele până când este satisfăcută o anumită condiție (un " +"predicat) privind datele partajate. Operațiile de bază ale condițiilor sunt: " +"semnalizarea condiției (când predicatul devine adevărat) și așteptarea " +"condiției, suspendând execuția firului până când un alt fir semnalizează " +"condiția." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"B<pthread_cond_init> initializes the condition variable I<cond>, using the " +"condition attributes specified in I<cond_attr>, or default attributes if " +"I<cond_attr> is B<NULL>. The LinuxThreads implementation supports no " +"attributes for conditions, hence the I<cond_attr> parameter is actually " +"ignored." +msgstr "" +"B<pthread_cond_init> inițializează variabila de condiție I<cond>, utilizând " +"atributele de condiție specificate în I<cond_attr> sau atributele implicite " +"dacă I<cond_attr> este B<NULL>. Implementarea „LinuxThreads” nu acceptă " +"atribute pentru condiții, prin urmare parametrul I<cond_attr> este de fapt " +"ignorat." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"B<pthread_cond_signal> restarts one of the threads that are waiting on the " +"condition variable I<cond>. If no threads are waiting on I<cond>, nothing " +"happens. If several threads are waiting on I<cond>, exactly one is " +"restarted, but it is not specified which." +msgstr "" +"B<pthread_cond_signal> repornește unul dintre firele care așteaptă variabila " +"de condiție I<cond>. În cazul în care niciun fir de execuție nu așteaptă pe " +"I<cond>, nu se întâmplă nimic. În cazul în care mai multe fire așteaptă pe " +"I<cond>, se repornește exact unul dintre ele, dar nu se specifică care." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"B<pthread_cond_broadcast> restarts all the threads that are waiting on the " +"condition variable I<cond>. Nothing happens if no threads are waiting on " +"I<cond>." +msgstr "" +"B<pthread_cond_broadcast> repornește toate firele care așteaptă variabila de " +"condiție I<cond>. Nu se întâmplă nimic dacă niciun fir de execuție nu " +"așteaptă pe I<cond>." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"B<pthread_cond_wait> atomically unlocks the I<mutex> (as per " +"B<pthread_unlock_mutex>) and waits for the condition variable I<cond> to be " +"signaled. The thread execution is suspended and does not consume any CPU " +"time until the condition variable is signaled. The I<mutex> must be locked " +"by the calling thread on entrance to B<pthread_cond_wait>. Before returning " +"to the calling thread, B<pthread_cond_wait> re-acquires I<mutex> (as per " +"B<pthread_lock_mutex>)." +msgstr "" +"B<pthread_cond_wait> deblochează atomic I<mutex> (conform " +"B<pthread_unlock_mutex>) și așteaptă ca variabila de condiție I<cond> să fie " +"semnalată. Execuția firului este suspendată și nu consumă timp de procesare " +"până când variabila de condiție este semnalată. I<mutex> trebuie să fie " +"blocată de firul apelant la intrarea în B<pthread_cond_wait>. Înainte de a " +"reveni la firul apelant, B<pthread_cond_wait> recuperează I<mutex> (conform " +"B<pthread_lock_mutex>)." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"Unlocking the mutex and suspending on the condition variable is done " +"atomically. Thus, if all threads always acquire the mutex before signaling " +"the condition, this guarantees that the condition cannot be signaled (and " +"thus ignored) between the time a thread locks the mutex and the time it " +"waits on the condition variable." +msgstr "" +"Deblocarea mutex-ului și suspendarea pe variabila de condiție se face " +"atomic. Astfel, dacă toate firele achiziționează întotdeauna mutex-ul " +"înainte de a semnaliza condiția, acest lucru garantează că condiția nu poate " +"fi semnalată (și, prin urmare, ignorată) între momentul în care un fir " +"blochează mutex-ul și momentul în care așteaptă pe variabila de condiție." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"B<pthread_cond_timedwait> atomically unlocks I<mutex> and waits on I<cond>, " +"as B<pthread_cond_wait> does, but it also bounds the duration of the wait. " +"If I<cond> has not been signaled within the amount of time specified by " +"I<abstime>, the mutex I<mutex> is re-acquired and B<pthread_cond_timedwait> " +"returns the error B<ETIMEDOUT>. The I<abstime> parameter specifies an " +"absolute time, with the same origin as B<time>(2) and B<gettimeofday>(2): an " +"I<abstime> of 0 corresponds to 00:00:00 GMT, January 1, 1970." +msgstr "" +"B<pthread_cond_timedwait> deblochează atomic I<mutex> și așteaptă pe " +"I<cond>, la fel ca B<pthread_cond_wait>, dar limitează și durata așteptării. " +"Dacă I<cond> nu a fost semnalată în intervalul de timp specificat de " +"I<abstime>, mutex-ul I<mutex> este reacceptat din nou, iar " +"B<pthread_cond_timedwait> returneazǎ eroarea B<ETIMEDOUT>. Parametrul " +"I<abstime> specifică un timp absolut, cu aceeași origine ca și B<time>(2) și " +"B<gettimeofday>(2): un I<abstime> de 0 corespunde la 00:00:00 GMT, 1 " +"ianuarie 1970." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"B<pthread_cond_destroy> destroys a condition variable, freeing the resources " +"it might hold. No threads must be waiting on the condition variable on " +"entrance to B<pthread_cond_destroy>. In the LinuxThreads implementation, no " +"resources are associated with condition variables, thus " +"B<pthread_cond_destroy> actually does nothing except checking that the " +"condition has no waiting threads." +msgstr "" +"B<pthread_cond_destroy> distruge o variabilă de condiție, eliberând " +"resursele pe care le-ar putea conține. La intrarea în " +"B<pthread_cond_destroy> nu trebuie să existe fire de execuție care să " +"aștepte variabila de condiție. În implementarea „LinuxThreads”, nu există " +"resurse asociate variabilelor de condiție, astfel încât " +"B<pthread_cond_destroy> nu face de fapt nimic, cu excepția verificării " +"faptului că nu există fire de execuție în așteptare." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"B<pthread_cond_wait> and B<pthread_cond_timedwait> are cancellation points. " +"If a thread is cancelled while suspended in one of these functions, the " +"thread immediately resumes execution, then locks again the I<mutex> argument " +"to B<pthread_cond_wait> and B<pthread_cond_timedwait>, and finally executes " +"the cancellation. Consequently, cleanup handlers are assured that I<mutex> " +"is locked when they are called." +msgstr "" +"B<pthread_cond_wait> și B<pthread_cond_timedwait> sunt puncte de anulare. " +"Dacă un fir este anulat în timp ce este suspendat într-una din aceste " +"funcții, firul își reia imediat execuția, apoi blochează din nou argumentul " +"I<mutex> la B<pthread_cond_wait> și B<pthread_cond_timedwait> și, în final, " +"execută anularea. În consecință, gestionarii de curățare sunt asigurați că " +"I<mutex> este blocat atunci când sunt apelați." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"The condition functions are not async-signal safe, and should not be called " +"from a signal handler. In particular, calling B<pthread_cond_signal> or " +"B<pthread_cond_broadcast> from a signal handler may deadlock the calling " +"thread." +msgstr "" +"Funcțiile de condiție nu sunt sigure pentru semnale asincrone și nu ar " +"trebui să fie apelate de la un gestionar de semnal. În special, apelarea " +"B<pthread_cond_signal> sau B<pthread_cond_broadcast> de la un gestionar de " +"semnal poate bloca firul apelant." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"the condition variable was not signaled until the timeout specified by " +"I<abstime>" +msgstr "" +"variabila de condiție nu a fost semnalată până la expirarea timpului de " +"așteptare specificat de I<abstime>." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "B<pthread_cond_timedwait> was interrupted by a signal" +msgstr "B<pthread_cond_timedwait> a fost întrerupt de un semnal." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "some threads are currently waiting on I<cond>." +msgstr "unele fire sunt în prezent în așteptare pe I<cond>." + +#. type: SH +#: debian-bookworm debian-unstable +#, no-wrap +msgid "AUTHOR" +msgstr "AUTOR" + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "Xavier Leroy E<lt>Xavier.Leroy@inria.frE<gt>" +msgstr "Xavier Leroy E<lt>Xavier.Leroy@inria.frE<gt>" + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"If it can be proved that at most one waiting thread needs to be waken up " +"(for instance, if there are only two threads communicating through I<x> and " +"I<y>), B<pthread_cond_signal> can be used as a slightly more efficient " +"alternative to B<pthread_cond_broadcast>. In doubt, use " +"B<pthread_cond_broadcast>." +msgstr "" +"Dacă se poate dovedi că cel mult un singur fir în așteptare trebuie să fie " +"trezit (de exemplu, dacă există doar două fire care comunică prin I<x> și " +"I<y>), B<pthread_cond_signal> poate fi utilizat ca o alternativă puțin mai " +"eficientă la B<pthread_cond_broadcast>. În caz de îndoială, utilizați " +"B<pthread_cond_broadcast>." + +#. type: Plain text +#: debian-bookworm debian-unstable +msgid "" +"To wait for I<x> to becomes greater than I<y> with a timeout of 5 seconds, " +"do:" +msgstr "" +"Pentru a aștepta ca I<x> să devină mai mare decât I<y> cu un timp de " +"așteptare de 5 secunde, faceți:" + +#. type: Plain text +#: debian-bookworm debian-unstable +#, no-wrap +msgid "" +"B<struct timeval now;\n" +"struct timespec timeout;\n" +"int retcode;>\n" +msgstr "" +"B<struct timeval now;\n" +"struct timespec timeout;\n" +"int retcode;>\n" + +#. type: Plain text +#: debian-bookworm debian-unstable +#, no-wrap +msgid "" +"B<pthread_mutex_lock(&mut);\n" +"gettimeofday(&now);\n" +"timeout.tv_sec = now.tv_sec + 5;\n" +"timeout.tv_nsec = now.tv_usec * 1000;\n" +"retcode = 0;\n" +"while (x E<lt>= y && retcode != ETIMEDOUT) {\n" +" retcode = pthread_cond_timedwait(&cond, &mut, &timeout);\n" +"}\n" +"if (retcode == ETIMEDOUT) {\n" +" /* timeout occurred */\n" +"} else {\n" +" /* operate on x and y */\n" +"}\n" +"pthread_mutex_unlock(&mut);>\n" +msgstr "" +"B<pthread_mutex_lock(&mut);\n" +"gettimeofday(&now);\n" +"timeout.tv_sec = now.tv_sec + 5;\n" +"timeout.tv_nsec = now.tv_usec * 1000;\n" +"retcode = 0;\n" +"while (x E<lt>= y && retcode != ETIMEDOUT) {\n" +" retcode = pthread_cond_timedwait(&cond, &mut, &timeout);\n" +"}\n" +"if (retcode == ETIMEDOUT) {\n" +" /* a avut loc terminarea timpului de așteptare */\n" +"} else {\n" +" /* operează asupra lui x și y */\n" +"}\n" +"pthread_mutex_unlock(&mut);>\n" |