Blokada odczytu / zapisu międzyprocesowego z Boost
Ten wątek jest złoty, jeśli chodzi o wyjaśnienie, jak zaimplementować blokady czytnika / pisarza za pomocą funkcji Boost. Wydaje się to stosunkowo proste i bardzo mi się podoba, ale wydaje się, że korzysta z nie nazwanego zamka i potrzebuję rozwiązania międzyprocesowego (nie musi być przenośne, może być tylko w systemie Windows).
Czy istnieje sposób na interprocesjęshared_mutex
? Widzę, że jestnamed_mutex
ale nie mogę tego zmusićshared_lock
ot inne zamki.
Wszelkie wskazówki są mile widziane.
[EDYTOWAĆ]
W międzyczasie natknąłem sięten wątek co prawie uderza w głowę. Mam dwie kwestie:
nie pokazuje kompletnego kodu (zgaduję, że muszę użyćnamed_upgradable_mutex
ale nie jestem do końca pewien)Nie podoba mi się odpowiedź na zmodyfikowany „pisarz”, który nie używa żadnej klasy półek, która odblokowuje destruktora, ale sekwencję 3 surowych wywołań na muteksie.Komentarze lub dobre rozwiązania są nadal mile widziane.