yii\mutex\OracleMutex::acquireLock PHP Method

acquireLock() protected method

Acquires lock by given name.
See also: http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_lock.htm
protected acquireLock ( string $name, integer $timeout ) : boolean
$name string of the lock to be acquired.
$timeout integer to wait for lock to become released.
return boolean acquiring result.
    protected function acquireLock($name, $timeout = 0)
    {
        $lockStatus = null;
        /** clean vars before using */
        $releaseOnCommit = $this->releaseOnCommit ? 'TRUE' : 'FALSE';
        $timeout = abs((int) $timeout);
        /** inside pl/sql scopes pdo binding not working correctly :(  */
        $this->db->createCommand('DECLARE
    handle VARCHAR2(128);
BEGIN
    DBMS_LOCK.ALLOCATE_UNIQUE(:name, handle);
    :lockStatus := DBMS_LOCK.REQUEST(handle, DBMS_LOCK.' . $this->lockMode . ', ' . $timeout . ', ' . $releaseOnCommit . ');
END;', [':name' => $name])->bindParam(':lockStatus', $lockStatus, PDO::PARAM_INT, 1)->execute();
        return $lockStatus === 0 || $lockStatus === '0';
    }