aboutsummaryrefslogtreecommitdiff
path: root/app/Models/Feed.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2014-02-11 21:48:10 +0100
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2014-02-11 21:48:10 +0100
commit0cabd1f50dd7d1cf0941a50139e6fbeed6825b4d (patch)
tree404190eba703df08a741623db491ea0917488b6d /app/Models/Feed.php
parentd48f612c437009069593978fe43833fe2c7d74ea (diff)
Mutex par flux pour les actualisations
Contribue à https://github.com/marienfressinaud/FreshRSS/issues/351 Nouvelle constante TMP_PATH comme répertoire pour stocker des fichiers temporaires (si possible en mémoire et non sur disque, tel tmpfs pour /tmp sur certaines distributions Linux) Requiert PHP 5.2.1+ (contre 5.2.0 auparavant) pour le `sys_get_temp_dir()`
Diffstat (limited to 'app/Models/Feed.php')
-rw-r--r--app/Models/Feed.php18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/Models/Feed.php b/app/Models/Feed.php
index e94ae2b3a..73f9c32fb 100644
--- a/app/Models/Feed.php
+++ b/app/Models/Feed.php
@@ -281,4 +281,22 @@ class FreshRSS_Feed extends Minz_Model {
$this->entries = $entries;
}
+
+ function lock() {
+ $lock = TMP_PATH . '/' . md5(Minz_Configuration::salt() . $this->url) . '.freshrss.lock';
+ if (file_exists($lock) && ((time() - @filemtime($lock)) > 3600)) {
+ @unlink($lock);
+ }
+ if (($handle = @fopen($lock, 'x')) === false) {
+ return false;
+ }
+ //register_shutdown_function('unlink', $lock);
+ @fclose($handle);
+ return true;
+ }
+
+ function unlock() {
+ $lock = TMP_PATH . '/' . md5(Minz_Configuration::salt() . $this->url) . '.freshrss.lock';
+ @unlink($lock);
+ }
}