Più lettori su FIFO

1

Ho già fatto una domanda qui a proposito di più scrittori su una FIFO, e ora so che la scrittura è sicura per i thread fintanto che scrivo meno di PIPE_BIF, qui è il link per quel limite.

Che ne dici di leggere? e se avessi due (o più) lettori in più thread per leggere dallo stesso fifo, ho bisogno di serrature qui? o tutto ciò di cui ho bisogno è leggere meno del PIPE_BUF?

BTW, sto parlando di Linux FIFO, e sto usando C.

    
posta poly 27.07.2012 - 19:21
fonte

1 risposta

0

Risposta aggiornata

Per il manuale , NON sei garantito letture atomiche. Tuttavia, il loro intento è che le letture con FIFO siano atomiche. Dai paragrafi 2 e 4 di Rationale | Input e output

The standard developers considered adding atomicity requirements to a pipe or FIFO, but
 recognized that due to the nature of pipes and FIFOs there could be no guarantee of 
atomicity of reads of {PIPE_BUF} or any other size that would be an aid to applications 
portability.
I/O is intended to be atomic to ordinary files and pipes and FIFOs.

Finché non vedrai le prove in altro modo, sarei comunque disposto a dire che stai bene.

Risposta originale

In base alla tua domanda precedente, suppongo che tutte le tue letture saranno inferiori a PIPE_BUF.

Non credo che avrai bisogno di alcuna serializzazione aggiuntiva intorno alle letture poiché la tua unità di consumo è inferiore all'importo di scrittura atomico sicuro per i thread. Se avessi sequenze di oggetti che dovevano essere letti, allora avresti bisogno di un meccanismo aggiuntivo per la serializzazione.

    
risposta data 27.07.2012 - 21:46
fonte

Leggi altre domande sui tag