note 60883 deleted from function.flock by danbrown
| From: | danbrown@php.net | Date: | Mon, 18 May 2009 00:39:53 +0000 |
| Subject: | note 60883 deleted from function.flock by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-155409@lists.php.net to get a copy of this message | ||
Note Submitter: arne at bukkie dot nl
----
An addition to administrator at proxy-list dot org snippet below.
To prevent unnecessary waiting check if the lock is obtained, if so skip the usleep():
$fp = fopen($logFileName, 'a');
$canWrite = false;
//Waiting until file will be locked for writing
while (!$canWrite) {
$canWrite = flock($fp, LOCK_EX);
// If lock not obtained sleep for 0 - 2000 miliseconds, to avoid colision
if( !$canWrite ) {
$miliSeconds = rand(0, 20); //1 u = 100 miliseconds
usleep(round($miliSeconds*100000));
}
}
//file was locked so now we can store information
fwrite($fp, $toSave);
fclose($fp);