PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 3.1.22.3
JetBackup – Backup, Restore & Migrate v3.1.22.3
3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / src / JetBackup / IO / Lock.php
backup / src / JetBackup / IO Last commit date
.htaccess 1 year ago Execute.php 1 year ago Lock.php 1 year ago Process.php 1 year ago index.html 1 year ago web.config 1 year ago
Lock.php
40 lines
1 <?php
2
3 namespace JetBackup\IO;
4
5 if (!defined( '__JETBACKUP__')) die('Direct access is not allowed');
6
7 class Lock {
8
9 private static $_files;
10
11 private static function _getFile($filename) {
12 if (!file_exists($filename)) touch($filename);
13 if (!isset(self::$_files[$filename])) self::$_files[$filename] = @fopen($filename, 'r');
14 return self::$_files[$filename];
15 }
16
17 private static function _closeFile($filename) {
18 if (!isset(self::$_files[$filename])) return;
19 @fclose(self::$_files[$filename]);
20 unset(self::$_files[$filename]);
21 }
22
23 public static function LockFile($filename, $block = false): bool {
24 if (($fd = self::_getFile($filename)) === false) return false;
25 $flag = LOCK_EX;
26 if (!$block) $flag |= LOCK_NB;
27 $wouldblock = 0;
28 $ret = flock($fd, $flag, $wouldblock);
29 if ((!$block && $wouldblock) || $ret === false) return false;
30 return true;
31 }
32
33 public static function UnlockFile($filename) {
34 if (
35 ($fd = self::_getFile($filename)) === false ||
36 flock($fd, LOCK_UN) === false
37 ) return;
38 self::_closeFile($filename);
39 }
40 }