keep
简介
全局对象
一个全局的变量容器,可供跨域读写
使用场景
- 需要一个全局的读写变量用来存储数据
- 目的是让有状态的Daemon对象可以正常update
组件接口
函数原型 | 函数作用 |
---|---|
mixed allocate_share_value(string name, mixed init_val, int level = 100) | 该接口用来生成或者获取一个share_value |
mixed allocate_ro_value(string name, mixed init_val) | 该接口用来生成或者获取一个ro对象 |
mixed update_ro_value(string name, mixed val) | 该接口用来更新一个ro对象 |
使用方法
- import pkg.keep;
- 调用 keep.allocate_share_value(string name, mixed init_val, int level = 100); 分配或获取一个share_value
- 调用 keep.allocate_ro_value(string name, mixed init_val); 分配或获取一个ro对象
例子:
#pragma parallel
import gs.lang.*;
import gs.util.*;
import pkg.gtest;
import pkg.keep;
public mixed get_share_value(mixed valname, mixed initval, mixed val)
{
mixed sv = keep.allocate_share_value(valname, initval);
try_lock(sv)
{
sv.set("key", val);
return sv.get("key");
}
}
public void test_run()
{
gtest.test_func((: get_share_value, "share_name", {}, 1 :), 1);
}