named_lock
简介
有名字的互斥锁,自动创建和销毁
几点说明:
-
执行锁定时,如果不存在指定名称的互斥锁,则自动创建互斥锁再执行锁定
-
执行解锁后时,如果互斥锁的使用计数为0,则自动销毁互斥锁
组件接口
named_lock.gs
函数原型 | 函数作用 |
---|---|
bool lock(string name, mixed wait_time = -1) | 抢锁 |
bool unlock(string name) | 解锁 |
MutexWithRefCount find_by_name(string name) | 查找指定名称的锁 |
类
MutexWithRefCount
带有引用计数的互斥锁(非接口,不要直接访问)
成员变量
变量名 | 类型 | 初始值 | 须初始化 | 描述 |
---|---|---|---|---|
name | string | nil | 可选 | 名字 |
ref_count | int | 0 | 可选 | 引用计数 |
mutex | sync_object | nil | 可选 | 互斥锁 |
成员方法
函数原型 | 函数作用 |
---|---|
void inc_ref_count(int count) | 增加引用计数 |
int dec_ref_count(int count) | 减少引用计数 |
bool lock(mixed wait_time = -1) | 抢锁 |
bool unlock() | 解锁 |
样例
import pkg.named_lock;
string name = "G0000001";
named_lock.lock(name);
defer named_lock.unlock(name);
// do something