TS: LOCK_NB Verwendung

Beitrag lesen

Hello,

Nun frage ich mich, für was LOCK_NB gut sein soll. Hat mal jemand ein praktisches Beispiel für eine sinnvolle Verwendung für Non Blocking Lock?

Man sollte die Rückgabewerte der benutzten Funktionen auch abfragen!
Selbstverständlich musst Du bei Verwensung von LOCK_NB vorher fragen, ob gelockt werden konnte und nur dann schreibend auf die Datei zugreifen.

Schau Dir auch den Parameter Wouldblock an. Wenn

$lockock = flock($fp, LOCK_EX|LOCK_NB, $reason);

if (!$lockok)
{
    if ($reason === 1) 
    {
        echo "ich konnte nicht sperren, weil ich sonst hätte warten müssen auf das Lock";
    }
    else
    {
        echo "beim Lockversuch ist ein Fehler aufgetreten, 
              näheres erfährst Du mit error_get_last()";
    }
}

Lock NB ist dafür da, dass der Prozess nicht wartet auf ein Lock, sondern der Programmierer den Rückgabewert von flock() abfragt, ob er sperren konnte. Das Programm kann also z. B. seine Schleife weiter ausführen und beim nächsten Umlauf nochmal versuchen zu sperren.

Liebe Grüße
Tom S.

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.