WordPress at Your Fingertips
function is not described

WP_Upgrader::create_lock() public WP 4.5.0

Creates a lock using WordPress options.

{} It's a method of the class: WP_Upgrader{}

No Hooks.

Return

true|false. False if a lock couldn't be created or if the lock is still valid. True otherwise.

Usage

$result = WP_Upgrader::create_lock( $lock_name, $release_timeout );
$lock_name(string) (required)
The name of this unique lock.
$release_timeout(int)
The duration in seconds to respect an existing lock.
Default: 1 hour

Changelog

Since 4.5.0 Introduced.

Code of WP_Upgrader::create_lock() WP 5.8.2

public static function create_lock( $lock_name, $release_timeout = null ) {
	global $wpdb;
	if ( ! $release_timeout ) {
		$release_timeout = HOUR_IN_SECONDS;
	}
	$lock_option = $lock_name . '.lock';

	// Try to lock.
	$lock_result = $wpdb->query( $wpdb->prepare( "INSERT IGNORE INTO `$wpdb->options` ( `option_name`, `option_value`, `autoload` ) VALUES (%s, %s, 'no') /* LOCK */", $lock_option, time() ) );

	if ( ! $lock_result ) {
		$lock_result = get_option( $lock_option );

		// If a lock couldn't be created, and there isn't a lock, bail.
		if ( ! $lock_result ) {
			return false;
		}

		// Check to see if the lock is still valid. If it is, bail.
		if ( $lock_result > ( time() - $release_timeout ) ) {
			return false;
		}

		// There must exist an expired lock, clear it and re-gain it.
		WP_Upgrader::release_lock( $lock_name );

		return WP_Upgrader::create_lock( $lock_name, $release_timeout );
	}

	// Update the lock, as by this point we've definitely got a lock, just need to fire the actions.
	update_option( $lock_option, time() );

	return true;
}