aio_suspend(3)

NUME
aio_suspend - așteaptă o operație de In/Ieș asincronă sau expirarea timpului de așteptare

BIBLIOTECA
Biblioteca de timp real (librt, -lrt)

SINOPSIS

#include <aio.h>

int aio_suspend(const struct aiocb *const aiocb_list[], int n,
                const struct timespec *restrict timeout);

DESCRIERE
Funcția aio_suspend() suspendă firul apelant până când are loc una dintre următoarele situații:

•   Una sau mai multe dintre cererile de In/Ieș asincrone din lista aiocb_list au fost finalizate.

•   Un semnal este transmis.

•   timeout nu este NULL și intervalul de timp specificat a trecut; (pentru detalii despre structura timespec, a se vedea nanosleep(2)).

Argumentul n specifică numărul de elemente din aiocb_list. Fiecare element din lista indicată de aiocb_list trebuie să fie fie NULL (și atunci este ignorat), sau un indicator la un bloc de control pe care In/Ieș a fost inițiată folosind aio_read(3), aio_write(3), sau lio_listio(3); (a se vedea aio(7) pentru o descriere a structurii aiocb).

Dacă este acceptat CLOCK_MONOTONIC, acest ceas este utilizat pentru a măsura intervalul de timp de așteptare (a se vedea clock_gettime(2)).

VALOAREA RETURNATĂ
În cazul în care această funcție returnează după finalizarea uneia dintre cererile de In/Ieș specificate în aiocb_list, se returnează 0. În caz contrar, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

EAGAIN
    Apelul s-a încheiat înainte ca oricare dintre operațiile indicate să se fi încheiat.

EINTR
    Apelul a fost încheiat printr-un semnal (posibil semnalul de finalizare a uneia dintre operațiile pe care le așteptam); a se vedea signal(7).

ENOSYS
    aio_suspend() nu este implementată.

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
aio_suspend() | Siguranța firelor | MT-Safe

STANDARDE
POSIX.1-2008.

ISTORIC
glibc 2.1. POSIX.1-2001.

POSIX nu specifică faptul că parametrii trebuie să fie restrict; acest lucru este specific pentru glibc.

NOTE
Se poate realiza interogarea prin utilizarea unui timeout non-NULL care specifică un interval de timp zero.

Dacă una sau mai multe dintre operațiile de In/Ieș asincrone specificate în aiocb_list s-au încheiat deja în momentul apelului către aio_suspend(), atunci apelul returnează imediat.

Pentru a determina ce operații de In/Ieș au fost finalizate după o returnare cu succes de la aio_suspend(), utilizați aio_error(3) pentru a scana lista de structuri aiocb indicate de aiocb_list.

ERORI
Implementarea glibc a aio_suspend() nu este „async-signal-safe”, încălcând cerințele din POSIX.1.

CONSULTAȚI ȘI
aio_cancel(3), aio_error(3), aio_fsync(3), aio_read(3), aio_return(3), aio_write(3), lio_listio(3), aio(7), time(7)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.