Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno mysql++ a multithread aplikacia

Chyba nie je priamo v tom, že používaš dva mutexy. Problém je len to, že tie mutexy nezamykáš/neodomykáš tak, ako by si mal. V predchádzajúcom príspevku som ti napísal, aký problém tam môže nastať (resp. nastane) - následkom toho prestane celá synchronizácia plniť svoj účel.
BTW: To is_writer = TRUE by naozaj malo byť pred tým cyklom - je to uvedené aj v tom zdroji na ďalšom slajde.

RW Lock je určený presne na takýto účel, takže nevidím dôvod pokúšať sa to implementovať vlastným spôsobom. Len pre upresnenie, v tomto kóde nie je žiadne podmienené zamykanie, ale čakanie na splnenie podmienky. Ešte lepšie povedané, ide o blokujúce čakanie na signál, ktoré je zabezpečené pomocou cond_wait (spolu s cond_signal).

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny