function ReadOnlyStream::stream_lock

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/StreamWrapper/ReadOnlyStream.php \Drupal\Core\StreamWrapper\ReadOnlyStream::stream_lock()
  2. 8.9.x core/lib/Drupal/Core/StreamWrapper/ReadOnlyStream.php \Drupal\Core\StreamWrapper\ReadOnlyStream::stream_lock()
  3. 10 core/lib/Drupal/Core/StreamWrapper/ReadOnlyStream.php \Drupal\Core\StreamWrapper\ReadOnlyStream::stream_lock()

Support for flock().

An exclusive lock attempt will be rejected, as this is a read-only stream wrapper.

Parameters

int $operation: One of the following:

  • LOCK_SH to acquire a shared lock (reader).
  • LOCK_EX to acquire an exclusive lock (writer).
  • LOCK_UN to release a lock (shared or exclusive).
  • LOCK_NB if you don't want flock() to block while locking (not supported on Windows).

Return value

bool Return FALSE for an exclusive lock (writer), as this is a read-only stream wrapper. Return the result of flock() for other valid operations. Defaults to TRUE if an invalid operation is passed.

Overrides PhpStreamWrapperInterface::stream_lock

See also

http://php.net/manual/streamwrapper.stream-lock.php

File

core/lib/Drupal/Core/StreamWrapper/ReadOnlyStream.php, line 143

Class

ReadOnlyStream
Defines a read-only Drupal stream wrapper base class.

Namespace

Drupal\Core\StreamWrapper

Code

public function stream_lock($operation) {
    if (in_array($operation, [
        LOCK_EX,
        LOCK_EX | LOCK_NB,
    ])) {
        trigger_error('stream_lock() exclusive lock operations not supported for read-only stream wrappers', E_USER_WARNING);
        return FALSE;
    }
    if (in_array($operation, [
        LOCK_SH,
        LOCK_UN,
        LOCK_SH | LOCK_NB,
    ])) {
        return flock($this->handle, $operation);
    }
    return TRUE;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.