Hallo,
Wenn ich eine Datei *ausschließlich* zum Lesen öffne (also Moduls '<' in Perl oder O_RDONLY in open(2)-Terminologie), welche Vorteile bietet dann ein exclusive lock gegenüber einem shared lock?
A liest X nonblocking
B liest X nonblocking
A schreibt X blocking
B schreibt X blockingBitte das ist ein Standard-Fehler.
Bittewas? Was hat denn blocking / nonblocking mit shared / exclusive zu tun?
Und wenn Du wirklich shared / exclusive statt nonblocking / blocking meinst: Da produzierst Du genauso eine race condition beim erneuten Öffnen der Datei, wenn Du sie ursprünglich *nur* zum Lesen geöffnet hast, wie das hier der Fall war (ich wiederhole mich...)
Wenn ich eine Datei auslesen und dann ändern will, *dann* brauche ich ein exclusive lock.
Danke, der Hinweis hätte fett in der Nachricht stehen sollen, die meinen Einwand provozierte.
Zitat:
| Ansonsten: Siehe meinen Artikel, insbesondere auch den Abschnitt über häufige Fehler.
Den da meine ich, hatte ich woanders im Thread hier schon verlinkt.
Aber deine Methode halte ich dennoch für mangelhaft
Warum?
und kaum gerechtfertigt in dem Thema und der Kenntnisstufe des betreffenden Perl-Autors.
Ein exclusive lock auf eine Datei zu acquirieren, die man *ausschließlich* zum Lesen geöffnet hat, ist zwar nicht gefährlich, aber zumindest konzeptionell falsch - und darauf habe ich hingewiesen. Und ein derartiger konzeptioneller Fehler zeugt von mangelndem Verständnis - was darauf hindeutet, dass die Person noch weitere Fehler machen wird, wenn man sie nicht darauf aufmerksam macht, damit sie sich mit diesem Aspekt noch einmal in Ruhe auseinandersetzen kann.
Es gibt zudem Schreibzugriffe mit Methoden aus Modulen, für die du ein Dummifile brauchst.
Ich verstehe ehrlich nicht, worauf Du hinauswillst...
Spätestens hier erachte ich das 'manuelle' individuelle setzen von flock auf einzelne Files für problematisch und es ist eine generelle Lösung mit einem lockfile gefragt.
Lockfiles haben auch ihre Nachteile. Es hängt IMHO von der Aufgabenstellung und den Rahmenbedingungen ab, was man erreichen will. Wenn es nur darum geht, eine Datei, die man lesen / schreiben will, zu sperren, dann halte ich Lockfiles für konzeptionellen Overkill (denn auch da muss man *einiges* beachten, wenn man es richtig machen will).
Viele Grüße,
Christian