⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tst220.mal

📁 一个内存数据库的源代码这是服务器端还有客户端
💻 MAL
字号:
# a test checking BAT reference counting under various situationsfunction steal(bb:bat[:any_1,:any_2]) :bat[:any_1,:any_2];	i:= bbp.getLRefCount(bb);	io.printf("enter function refcount =%d[2,3]\n",i);	loc:= bb;	i:= bbp.getLRefCount(bb);	io.printf("local in function refcount =%d[3,4]\n",i);	return bb;end steal; function createone():bat[:int,:str];	b:= bat.new(:int,:str);	return b;end createone;	b:= bat.new(:int,:str);	i:= bbp.getLRefCount(b);	io.printf("refcount =%d[1]\n",i);		bat.insert(b,1,"bat B");	io.print(b);	i:= bbp.getLRefCount(b);	io.printf("refcount =%d[1]\n",i);	#handle an alias, which isn;t used!	b2:= b;				i:= bbp.getLRefCount(b);	io.printf("after assignment refcount =%d[2]\n",i);	#re-use a bat variable	b3:= b;				cnt:= aggr.count(b3); # forced use	i:= bbp.getLRefCount(b);	io.printf("after 2nd assignment refcount =%d[3]\n",i);	#re-use a bat variable	b3:= user.createone();				i:= bbp.getLRefCount(b);	io.printf("after 3rd assignment refcount =%d[2]\n",i);	i:= bbp.getLRefCount(b3);	io.printf("assignment refcount =%d[1]\n",i);	#re-use a bat variable	b4:= algebra.select(b,"bat C","bat C");	io.print(b4);	i:= bbp.getLRefCount(b);	io.printf("after 4rd assignment refcount =%d[2]\n",i);	# remove by assignment	b2:= b3;	i:= bbp.getLRefCount(b);	io.printf("after 5rd assignment refcount =%d[1]\n",i);	io.printf("call function\n");	d:= user.steal(b);	i:= bbp.getLRefCount(b);	io.printf("return from function refcount =%d[2]\n",i);	io.printf("check self replacement, overrule refcount!\n");	b:= user.steal(b);	i:= bbp.getLRefCount(b);	io.printf("return from function refcount =%d[2]\n",i);	z:= bbp.getRefCount();	zl:= bbp.getLRefCount();	zn:= bbp.getNames();	io.print(zn,z,zl);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -