Nur eine kuriose Frage: Warum haben Sie mkdir zum Sperren und nicht zum Berühren gewählt, dh warum sperren Sie mit einem Verzeichnis und nicht mit einer leeren Datei? Gibt es einen Grund dafür oder war es nur Zufall?
open(2) mit O_CREAT|O_EXCL und mkdir(2) sind zu diesem Zweck sehr ähnlich. open(2) ohne O_EXCL funktioniert natürlich nicht.
Ich glaube, dass mkdir aufgrund einiger Fehler in vernetzten FSs der bevorzugte Weg wurde (Verzeichnisse und Dateien werden aufgrund unterschiedlicher Caching-Strategien sehr unterschiedlich gehandhabt, ich denke, abgesehen davon hatte Linux auch einige Fehler).
Hinweis: Es gibt auch eine Mailingliste .
attic hatte Posix-Locking, aber das ist sogar auf UNIX-Plattformen problematisch (und existiert nicht auf Windows-Dateisystemen). Aus diesem Grund gab es zahlreiche Probleme auf dem Dachbodenproblem-Tracker. und "Ausgabe" bedeutete im Grunde "Spiel vorbei".
Ich habe mich nach Sperrbibliotheken umgesehen und überprüft, wie sie das tun.
Ich fand eine Handvoll, aber nichts sah so aus, als könnten wir es einfach gebrauchen.
Also, das Rad neu erfunden (rundere Version) und einfach die mkdir-Sperre genommen, wie sie in einigen anderen wegen ihrer plattformübergreifenden Kompatibilität und Einfachheit zu sehen ist.
Danke für deine Antwort. Ich mag keine Mailinglisten, aber GitHub-Probleme mit dem Tag "Frage" sind IMHO auch in Ordnung.