File: LockReleaseException.php

package info (click to toggle)
php-malkusch-lock 2.2.1%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 412 kB
  • sloc: php: 2,193; makefile: 19
file content (86 lines) | stat: -rw-r--r-- 2,195 bytes parent folder | download
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;
    }
}