golden hour
/home/doctorbruno/public_html/doctorbruno.in/wp-content/plugins/wordpress-seo/src/helpers
⬆️ Go Up
Upload
File/Folder
Size
Actions
aioseo-helper.php
1.24 KB
Del
OK
asset-helper.php
2.51 KB
Del
OK
attachment-cleanup-helper.php
2.24 KB
Del
OK
author-archive-helper.php
5.25 KB
Del
OK
blocks-helper.php
2.32 KB
Del
OK
capability-helper.php
2.07 KB
Del
OK
crawl-cleanup-helper.php
8.1 KB
Del
OK
curl-helper.php
655 B
Del
OK
current-page-helper.php
15.63 KB
Del
OK
date-helper.php
3.13 KB
Del
OK
environment-helper.php
793 B
Del
OK
first-time-configuration-notice-helper.php
5.36 KB
Del
OK
home-url-helper.php
681 B
Del
OK
image-helper.php
11.69 KB
Del
OK
import-cursor-helper.php
1.36 KB
Del
OK
import-helper.php
716 B
Del
OK
indexable-helper.php
9.24 KB
Del
OK
indexable-to-postmeta-helper.php
6.75 KB
Del
OK
indexing-helper.php
12.69 KB
Del
OK
language-helper.php
2.65 KB
Del
OK
lock-helper.php
2.84 KB
Del
OK
meta-helper.php
2.91 KB
Del
OK
notification-helper.php
2.01 KB
Del
OK
open-graph
-
Del
OK
options-helper.php
4.65 KB
Del
OK
pagination-helper.php
5.68 KB
Del
OK
permalink-helper.php
1.6 KB
Del
OK
post-helper.php
5.42 KB
Del
OK
post-type-helper.php
7.18 KB
Del
OK
primary-term-helper.php
1.37 KB
Del
OK
product-helper.php
1.08 KB
Del
OK
redirect-helper.php
1.73 KB
Del
OK
require-file-helper.php
326 B
Del
OK
robots-helper.php
1.74 KB
Del
OK
robots-txt-helper.php
3.4 KB
Del
OK
route-helper.php
694 B
Del
OK
sanitization-helper.php
1.03 KB
Del
OK
schema
-
Del
OK
score-icon-helper.php
2.78 KB
Del
OK
short-link-helper.php
3.52 KB
Del
OK
site-helper.php
566 B
Del
OK
social-profiles-helper.php
10.73 KB
Del
OK
string-helper.php
1.19 KB
Del
OK
taxonomy-helper.php
4.98 KB
Del
OK
twitter
-
Del
OK
url-helper.php
8.13 KB
Del
OK
user-helper.php
3.93 KB
Del
OK
wincher-helper.php
2.51 KB
Del
OK
woocommerce-helper.php
1.27 KB
Del
OK
wordpress-helper.php
512 B
Del
OK
wpdb-helper.php
937 B
Del
OK
Edit: lock-helper.php
<?php namespace Yoast\WP\SEO\Helpers; use Yoast\WP\SEO\Exceptions\Locking\Lock_Timeout_Exception; use Yoast\WP\SEO\Expiring_Store\Application\Expiring_Store; /** * Distributed exclusive lock backed by the expiring store. * * Acquires a network-scoped lock in the expiring store table, executes the * callback, and releases the lock in a finally block. * * The lock has a TTL so that it self-expires if the owning process crashes without * releasing it. Other processes retry with a configurable delay between attempts. */ class Lock_Helper { /** * The expiring store. * * @var Expiring_Store */ private $store; /** * The constructor. * * @param Expiring_Store $store The expiring store. */ public function __construct( Expiring_Store $store ) { $this->store = $store; } /** * Acquires a lock, executes the callback, and releases the lock. * * @template T * * @param string $lock_key The lock key. * @param callable(): T $callback The callback to execute while holding the lock. * @param int $ttl_in_seconds The lock TTL in seconds. Defaults to 30. * @param int $max_attempts The maximum number of acquisition attempts. Defaults to 5. * @param int $retry_delay_microseconds The delay between attempts in microseconds. Defaults to 20000 (20ms). * * @return T The callback's return value. * @throws Lock_Timeout_Exception When the lock cannot be acquired within the allowed attempts. */ public function execute( string $lock_key, callable $callback, int $ttl_in_seconds = 30, int $max_attempts = 5, int $retry_delay_microseconds = 20_000 ) { $this->acquire( $lock_key, $ttl_in_seconds, $max_attempts, $retry_delay_microseconds ); try { return $callback(); } finally { $this->store->delete_for_multisite( $lock_key ); } } /** * Attempts to acquire the lock with retries. * * @param string $lock_key The lock key. * @param int $ttl_in_seconds The lock TTL in seconds. * @param int $max_attempts The maximum number of attempts. * @param int $retry_delay_microseconds The delay between attempts in microseconds. * * @return void * @throws Lock_Timeout_Exception When all attempts are exhausted. */ private function acquire( string $lock_key, int $ttl_in_seconds, int $max_attempts, int $retry_delay_microseconds ): void { for ( $attempt = 1; $attempt <= $max_attempts; $attempt++ ) { if ( $this->store->persist_if_absent_for_multisite( $lock_key, true, $ttl_in_seconds ) ) { return; } if ( $attempt < $max_attempts ) { \usleep( $retry_delay_microseconds ); } } // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- This is an exception message, not output. throw new Lock_Timeout_Exception( $lock_key, $max_attempts ); } }
Save