Ho alcune domande riguardanti i blocchi di lettura/scrittura in Phasread POSIX su un sistema * nix, ad esempio Linux.Come prevenire l'inattività degli scrittori in un blocco di scrittura read in pthreads
Desidero sapere qual è il bias predefinito per il blocco di lettura della scrittura, preferisce la lettura delle scritture o viceversa? Fornisce qualche api per modificare questo comportamento predefinito.
Il pthread di posix fornisce alcune API in modo da poter modificare pthread_rwlock_t per impedire l'inattività dell'autore? Da quello che ho letto (correggimi se ho torto), l'implementazione di default è distorta nei confronti dei thread dei lettori e quindi i thread degli scrittori possono affrontare la fame.
Ho letto l'esempio di implementazione di rw lock dal libro Programming with Posix threads di David Butenhof.
Vorrei sapere come i pthreads posix gestiscono la fame dei thread degli scrittori? C'è qualche api con il quale potremmo impostare gli attributi del blocco di scrittura in lettura che impedirebbero la digitazione per fame (non ne ho mai sentito parlare)? O l'utente deve gestire questo problema?
Se pensate che la risposta sia definita dall'implementazione, per favore datemi un esempio di come è fatto in Linux, perché questo è quello che sto cercando.
Si prega di notare che voglio solo soluzioni per un sistema * nix. Non penso di essere scortese, ma pubblicare un codice specifico per Windows è inutile per me.
Grazie a tutti per il vostro aiuto e la pazienza :)
L'utilizzo di un mutex anziché un rwlock eviterà questo problema. Se il conflitto è basso, è anche più veloce in alcune implementazioni (come quelle che costruiscono un rwlock da un mutex e una variabile di condizione). – jilles