
---@class copas_lock_module*
---@type copas_lock_module*
local M = {}

---@class copas_lock_object*
local copas_lock_object = {}

--- 创建锁。
---@param seconds? number 默认等待秒数。
---@param not_reentrant? boolean 是否禁止重入。
---@return copas_lock_object* lock 锁对象。
function M.new(seconds, not_reentrant) end

--- 获取锁。
---@param timeout? number 超时秒数。
---@return number|nil waitTime 等待时间。
---@return string? errMsg 错误信息。
---@return number? elapsed 已等待时间。
function copas_lock_object:get(timeout) end

--- 释放锁。
---@return boolean|nil ok 是否成功。
---@return string? errMsg 错误信息。
function copas_lock_object:release() end

--- 销毁锁。
function copas_lock_object:destroy() end

return M
