PluginProbe ʕ •ᴥ•ʔ
Royal Addons for Elementor – Addons and Templates Kit for Elementor / 1.7.1064
Royal Addons for Elementor – Addons and Templates Kit for Elementor v1.7.1064
1.7.1064 1.7.1063 1.7.1062 1.7.1061 1.7.1060 1.7.1059 1.7.1058 trunk 1.0.0 1.1.0 1.2 1.3 1.3.1 1.3.2 1.3.21 1.3.22 1.3.23 1.3.24 1.3.25 1.3.26 1.3.27 1.3.28 1.3.29 1.3.30 1.3.31 1.3.32 1.3.33 1.3.34 1.3.35 1.3.36 1.3.37 1.3.38 1.3.39 1.3.40 1.3.41 1.3.42 1.3.43 1.3.44 1.3.45 1.3.46 1.3.47 1.3.48 1.3.49 1.3.50 1.3.51 1.3.52 1.3.53 1.3.54 1.3.55 1.3.56 1.3.57 1.3.58 1.3.59 1.3.60 1.3.61 1.3.62 1.3.63 1.3.64 1.3.65 1.3.66 1.3.67 1.3.68 1.3.69 1.3.70 1.3.71 1.3.72 1.3.73 1.3.74 1.3.75 1.3.76 1.3.77 1.3.78 1.3.79 1.3.80 1.3.81 1.3.82 1.3.83 1.3.84 1.3.85 1.3.86 1.3.87 1.3.88 1.3.89 1.3.90 1.3.91 1.3.92 1.3.93 1.3.94 1.3.95 1.3.96 1.3.97 1.3.971 1.3.972 1.3.973 1.3.974 1.3.975 1.3.976 1.3.977 1.3.978 1.3.979 1.3.980 1.3.981 1.3.982 1.3.983 1.3.984 1.3.985 1.3.986 1.3.987 1.7.1 1.7.1001 1.7.1002 1.7.1003 1.7.1004 1.7.1005 1.7.1006 1.7.1007 1.7.1008 1.7.1009 1.7.1010 1.7.1011 1.7.1012 1.7.1013 1.7.1014 1.7.1015 1.7.1016 1.7.1017 1.7.1018 1.7.1019 1.7.1020 1.7.1021 1.7.1022 1.7.1023 1.7.1024 1.7.1025 1.7.1026 1.7.1027 1.7.1028 1.7.1029 1.7.1030 1.7.1031 1.7.1032 1.7.1033 1.7.1034 1.7.1035 1.7.1036 1.7.1037 1.7.1038 1.7.1039 1.7.1040 1.7.1041 1.7.1042 1.7.1043 1.7.1044 1.7.1045 1.7.1046 1.7.1047 1.7.1048 1.7.1049 1.7.1050 1.7.1051 1.7.1052 1.7.1053 1.7.1054 1.7.1055 1.7.1056 1.7.1057
royal-elementor-addons / freemius / includes / class-fs-lock.php
royal-elementor-addons / freemius / includes Last commit date
customizer 5 days ago debug 5 days ago entities 5 days ago managers 5 days ago sdk 5 days ago supplements 5 days ago class-freemius-abstract.php 5 days ago class-freemius.php 5 days ago class-fs-admin-notices.php 5 days ago class-fs-api.php 5 days ago class-fs-garbage-collector.php 5 days ago class-fs-lock.php 5 days ago class-fs-logger.php 5 days ago class-fs-options.php 5 days ago class-fs-plugin-updater.php 5 days ago class-fs-security.php 5 days ago class-fs-storage.php 5 days ago class-fs-user-lock.php 5 days ago fs-core-functions.php 5 days ago fs-essential-functions.php 5 days ago fs-html-escaping-functions.php 5 days ago fs-plugin-info-dialog.php 5 days ago index.php 5 days ago l10n.php 5 days ago
class-fs-lock.php
110 lines
1 <?php
2 /**
3 * @package Freemius
4 * @copyright Copyright (c) 2015, Freemius, Inc.
5 * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6 * @since 2.5.1
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit;
11 }
12
13 /**
14 * Class FS_Lock
15 *
16 * @author Vova Feldman (@svovaf)
17 * @since 2.5.1
18 */
19 class FS_Lock {
20 /**
21 * @var int Random ID representing the current PHP thread.
22 */
23 private static $_thread_id;
24 /**
25 * @var string
26 */
27 private $_lock_id;
28
29 /**
30 * @param string $lock_id
31 */
32 function __construct( $lock_id ) {
33 if ( ! fs_starts_with( $lock_id, WP_FS___OPTION_PREFIX ) ) {
34 $lock_id = WP_FS___OPTION_PREFIX . $lock_id;
35 }
36
37 $this->_lock_id = $lock_id;
38
39 if ( ! isset( self::$_thread_id ) ) {
40 self::$_thread_id = mt_rand( 0, 32000 );
41 }
42 }
43
44 /**
45 * Try to acquire lock. If the lock is already set or is being acquired by another locker, don't do anything.
46 *
47 * @param int $expiration
48 *
49 * @return bool TRUE if successfully acquired lock.
50 */
51 function try_lock( $expiration = 0 ) {
52 if ( $this->is_locked() ) {
53 // Already locked.
54 return false;
55 }
56
57 set_site_transient( $this->_lock_id, self::$_thread_id, $expiration );
58
59 if ( $this->has_lock() ) {
60 $this->lock($expiration);
61
62 return true;
63 }
64
65 return false;
66 }
67
68 /**
69 * Acquire lock regardless if it's already acquired by another locker or not.
70 *
71 * @author Vova Feldman (@svovaf)
72 * @since 2.1.0
73 *
74 * @param int $expiration
75 */
76 function lock( $expiration = 0 ) {
77 set_site_transient( $this->_lock_id, true, $expiration );
78 }
79
80 /**
81 * Checks if lock is currently acquired.
82 *
83 * @author Vova Feldman (@svovaf)
84 * @since 2.1.0
85 *
86 * @return bool
87 */
88 function is_locked() {
89 return ( false !== get_site_transient( $this->_lock_id ) );
90 }
91
92 /**
93 * Unlock the lock.
94 *
95 * @author Vova Feldman (@svovaf)
96 * @since 2.1.0
97 */
98 function unlock() {
99 delete_site_transient( $this->_lock_id );
100 }
101
102 /**
103 * Checks if lock is currently acquired by the current locker.
104 *
105 * @return bool
106 */
107 protected function has_lock() {
108 return ( self::$_thread_id == get_site_transient( $this->_lock_id ) );
109 }
110 }