跳到主要内容

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);
}