lock checking in update_feeds.php

This commit is contained in:
Andrew Dolgov 2007-09-25 04:23:29 +01:00
parent 0d826d0279
commit 31a6d42de4
2 changed files with 21 additions and 10 deletions

View file

@ -1720,17 +1720,19 @@
}
function file_is_locked($filename) {
error_reporting(0);
$fp = fopen($filename, "r");
error_reporting(DEFAULT_ERROR_LEVEL);
if ($fp) {
if (flock($fp, LOCK_EX | LOCK_NB)) {
flock($fp, LOCK_UN);
if (function_exists('flock')) {
error_reporting(0);
$fp = fopen($filename, "r");
error_reporting(DEFAULT_ERROR_LEVEL);
if ($fp) {
if (flock($fp, LOCK_EX | LOCK_NB)) {
flock($fp, LOCK_UN);
fclose($fp);
return false;
}
fclose($fp);
return false;
return true;
}
fclose($fp);
return true;
}
return false;
}

View file

@ -12,7 +12,15 @@
require_once "db.php";
require_once "db-prefs.php";
require_once "functions.php";
require_once "magpierss/rss_fetch.inc";
$lock_filename = "update_feeds.lock";
$lock_handle = make_lockfile($lock_filename);
if (!$lock_handle) {
die("error: Can't create lockfile ($lock_filename). ".
"Maybe another process is already running.\n");
}
$link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
@ -46,4 +54,5 @@
db_close($link);
unlink($lock_filename);
?>