while (-e "script.lock)
{
# warten, bis Locking-File nicht mehr existiert.
}
An diesem Punkt geht es schief, wenn mehrere Skripte parallel laufen.
open (locking, ">script.lock");
close (locking);
Besser ist es, flock zu nutzen, wenn das Betriebssystem es unterstuetzt oder selbst dafuer sorgen, dass der lock atomar ist. Vielleicht so:
while (! mkdir('verzeichnis', 0755)) {
sleep 1;
}
Ein flock ist aber in jedem Fall zu bevorzugen. Auf keinen Fall sollte man soetwas machen:
while (irgendwas) {
}
Das garantiert eine 100% CPU-Auslastung.
Peter