summaryrefslogtreecommitdiff
path: root/meta/3rd/OpenResty/library/resty/lock.lua
diff options
context:
space:
mode:
Diffstat (limited to 'meta/3rd/OpenResty/library/resty/lock.lua')
m---------meta/3rd/OpenResty0
-rw-r--r--meta/3rd/OpenResty/library/resty/lock.lua127
2 files changed, 0 insertions, 127 deletions
diff --git a/meta/3rd/OpenResty b/meta/3rd/OpenResty
new file mode 160000
+Subproject 3bec36f0f645bb38b3c8208990d5c36feb66ce3
diff --git a/meta/3rd/OpenResty/library/resty/lock.lua b/meta/3rd/OpenResty/library/resty/lock.lua
deleted file mode 100644
index e5543597..00000000
--- a/meta/3rd/OpenResty/library/resty/lock.lua
+++ /dev/null
@@ -1,127 +0,0 @@
----@meta
-
---- lua-resty-lock
----
---- https://github.com/openresty/lua-resty-lock
----
----@class resty.lock : table
-local lock = {
- _VERSION = "0.08",
-}
-
-
----@class resty.lock.opts : table
----
---- Specifies expiration time (in seconds) for the lock entry in the shared memory
---- dictionary. You can specify up to 0.001 seconds. Default to 30 (seconds). Even
---- if the invoker does not call unlock or the object holding the lock is not GC'd,
---- the lock will be released after this time. So deadlock won't happen even when the
---- worker process holding the lock crashes.
----@field exptime number
----
---- Specifies the maximal waiting time (in seconds) for the lock method calls on
---- the current object instance. You can specify up to 0.001 seconds. Default to 5
---- (seconds). This option value cannot be bigger than `exptime`. This timeout is
---- to prevent a lock method call from waiting forever. You can specify 0 to make
---- the lock method return immediately without waiting if it cannot acquire the
---- lock right away.
----@field timeout number
----
---- Specifies the initial step (in seconds) of sleeping when waiting for the lock.
---- Default to 0.001 (seconds). When the lock method is waiting on a busy lock, it
---- sleeps by steps. The step size is increased by a ratio (specified by the ratio
---- option) until reaching the step size limit (specified by the max_step option).
----@field step number
----
---- Specifies the step increasing ratio. Default to 2, that is, the step size
---- doubles at each waiting iteration.
----@field ratio number
----
---- Specifies the maximal step size (i.e., sleep interval, in seconds) allowed.
---- See also the step and ratio options). Default to 0.5 (seconds).
----@field max_step number
-
-
---- Creates a new lock object instance by specifying the shared dictionary name
---- (created by `lua_shared_dict`) and an optional options table `opts`.
----
----@param dict_name string
----@param opts? resty.lock.opts
----@return resty.lock? lock
----@return string? err
-function lock.new(_, dict_name, opts) end
-
---- Tries to lock a key across all the Nginx worker processes in the current
---- NGINX server instance. Different keys are different locks.
----
---- The length of the key string must not be larger than 65535 bytes.
----
---- Returns the waiting time (in seconds) if the lock is successfully acquired.
---- Otherwise returns `nil` and a string describing the error.
----
---- The waiting time is not from the wallclock, but rather is from simply adding
---- up all the waiting "steps". A nonzero elapsed return value indicates that
---- someone else has just hold this lock. But a zero return value cannot gurantee
---- that no one else has just acquired and released the lock.
----
---- When this method is waiting on fetching the lock, no operating system threads
---- will be blocked and the current Lua "light thread" will be automatically yielded
---- behind the scene.
----
---- It is strongly recommended to always call the unlock() method to actively
---- release the lock as soon as possible.
----
---- If the `unlock()` method is never called after this method call, the lock
---- will get released when
----
---- The current `resty.lock` object instance is collected automatically by the Lua GC.
---- OR
---- The exptime for the lock entry is reached.
----
---- Common errors for this method call is
----
---- "timeout" : The timeout threshold specified by the timeout option of the new method is exceeded.
---- "locked" : The current `resty.lock` object instance is already holding a lock (not necessarily of the same key).
----
---- Other possible errors are from ngx_lua's shared dictionary API.
----
---- It is required to create different `resty.lock` instances for multiple
---- simultaneous locks (i.e., those around different keys).
----
----@param key string
----@return number? elapsed
----@return string? error
-function lock:lock(key) end
-
---- Releases the lock held by the current `resty.lock` object instance.
----
---- Returns 1 on success. Returns `nil` and a string describing the error otherwise.
----
---- If you call unlock when no lock is currently held, the error "unlocked" will
---- be returned.
----
----@return boolean ok
----@return string? error
-function lock:unlock() end
-
---- Sets the TTL of the lock held by the current `resty.lock` object instance.
---- This will reset the timeout of the lock to timeout seconds if it is given,
---- otherwise the timeout provided while calling new will be used.
----
---- Note that the timeout supplied inside this function is independent from the
---- timeout provided while calling new. Calling `expire()` will not change the
---- timeout value specified inside new and subsequent `expire(nil)` call will
---- still use the timeout number from new.
----
---- Returns true on success. Returns `nil` and a string describing the error
---- otherwise.
----
---- If you call expire when no lock is currently held, the error "unlocked" will
---- be returned.
----
----@param timeout? number
----@return boolean ok
----@return string? error
-function lock:expire(timeout) end
-
-return lock \ No newline at end of file