跳到主要内容

named_lock

简介

有名字的互斥锁,自动创建和销毁

几点说明:

  1. 执行锁定时,如果不存在指定名称的互斥锁,则自动创建互斥锁再执行锁定

  2. 执行解锁后时,如果互斥锁的使用计数为0,则自动销毁互斥锁

组件接口

named_lock.gs

函数原型函数作用
bool lock(string name, mixed wait_time = -1)抢锁
bool unlock(string name)解锁
MutexWithRefCount find_by_name(string name)查找指定名称的锁

MutexWithRefCount

带有引用计数的互斥锁(非接口,不要直接访问)

成员变量

变量名类型初始值须初始化描述
namestringnil可选名字
ref_countint0可选引用计数
mutexsync_objectnil可选互斥锁

成员方法

函数原型函数作用
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