Der Titel mag verwirrend sein ich suche jedoch eine Spezielle Art von Lock, den Namen habe ich leider vergessen und die Dokumentation dazu kann ich auch nicht finden.
Das Problem ist folgendes, ich habe einen geteilten Datensatz, auf diesen kann sowohl lesend als auch schreibend Zugegriffen werden.
Es dürfen mehrere Threads gleichzeitig lesen. Jedoch nur ein einziger darf schreiben, und auch das nur, wenn kein anderer am lesen ist.
Ich stell mir das ganze so vor:
aquireRead():
wartet bis want_write false ist
inkrementiert readers
releaseRead():
dekrementiert readers
aquireWrite():
wartet setzt want_write und wartet bis readers 0 ist
gibt es so etwas bereits oder muss ich mir das nun ernsthaft selber schreiben?
PS: Ja ich weis das Threads böse sind aber es geht nicht anders.
Transaktionen
Lesestoff: http://de.wikipedia.org/wiki/Sperrverfahren
Und ja, Du wirst wohl so ein RX-Lock selber basteln müssen.
Und ja, Du wirst wohl so ein RX-Lock selber basteln müssen.
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Ein Mutex ist soweit ich weis ein einfaches Lock für eine Sektion. Irre ich mich da?Y0Gi hat geschrieben:Meinst du mutex?
BlackJack, danke
EyDu, Naja eigentlich sind ja die Threads selber nicht böse. Aber man kann sich damit sehr leicht ins Bein schiessen.
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
Man sollte halt gut zielen, bevor man abdrücktveers hat geschrieben:...Aber man kann sich damit sehr leicht ins Bein schiessen.
syl, querdenker