-
Notifications
You must be signed in to change notification settings - Fork 90
/
LockReleaseException.php
86 lines (75 loc) · 2.14 KB
/
LockReleaseException.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
declare(strict_types=1);
namespace malkusch\lock\exception;
use Throwable;
/**
* Lock release exception.
*
* Failed to release the lock. Take this exception very serious. Failing to
* release a lock might have the potential to introduce deadlocks. Also the
* critical code was executed i.e. side effects may have happened.
*
* @author Markus Malkusch <markus@malkusch.de>
* @link bitcoin:1P5FAZ4QhXCuwYPnLZdk3PJsqePbu1UDDA Donations
* @license WTFPL
*/
class LockReleaseException extends MutexException
{
/**
* Result that has been returned during the critical code execution.
*
* @var mixed
*/
private $codeResult;
/**
* Exception that has happened during the critical code execution.
*
* @var \Throwable|null
*/
private $codeException;
/**
* Gets the result that has been returned during the critical code
* execution.
*
* @return mixed The return value of the executed code block.
*/
public function getCodeResult()
{
return $this->codeResult;
}
/**
* Sets the result that has been returned during the critical code
* execution.
*
* @param mixed $codeResult The return value of the executed code block.
* @return self Current lock release exception instance.
*/
public function setCodeResult($codeResult): self
{
$this->codeResult = $codeResult;
return $this;
}
/**
* Gets the exception that has happened during the synchronized code
* execution.
*
* @return \Throwable|null The exception thrown by the code block or null
* when there has been no exception.
*/
public function getCodeException(): ?Throwable
{
return $this->codeException;
}
/**
* Sets the exception that has happened during the critical code
* execution.
*
* @param \Throwable $codeException The exception thrown by the code block.
* @return self Current lock release exception instance.
*/
public function setCodeException(Throwable $codeException): self
{
$this->codeException = $codeException;
return $this;
}
}