Completed
Push — 2.0 ( 0d93f2...14c778 )
by Marco
16:42
created

PidLock::lock()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 5
rs 9.4285
cc 1
eloc 2
nc 1
nop 0
1
<?php namespace Comodojo\Extender\Components;
2
3
use \Exception;
4
5
/**
6
 * Lock file manager (static methods)
7
 *
8
 * @package     Comodojo extender
9
 * @author      Marco Giovinazzi <[email protected]>
10
 * @license     GPL-3.0+
11
 *
12
 * LICENSE:
13
 *
14
 * This program is free software: you can redistribute it and/or modify
15
 * it under the terms of the GNU Affero General Public License as
16
 * published by the Free Software Foundation, either version 3 of the
17
 * License, or (at your option) any later version.
18
 *
19
 * This program is distributed in the hope that it will be useful,
20
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22
 * GNU Affero General Public License for more details.
23
 *
24
 * You should have received a copy of the GNU Affero General Public License
25
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
26
 */
27
28
class PidLock extends AbstractLocker {
29
30
    /**
31
     * Lock file name
32
     *
33
     * @var string
34
     */
35
    private $lockfile = "extender.pid";
36
37
    private $pid;
38
39
    public function __construct($pid, $lockfile = null) {
40
41
        if ( $lockfile !== null ) $this->lockfile = $lockfile;
42
43
        if ( empty($pid) ) throw new Exception("Invalid pid reference");
44
45
        $this->pid = $pid;
46
47
    }
48
49
    public function lock() {
50
51
        return self::writeLock($this->lockfile, $this->pid);
52
53
    }
54
55
    public function release() {
56
57
        return self::releaseLock($this->lockfile);
58
59
    }
60
61
}
62