🚀 add coroutine library(beta) and lib function settimer&maketimestamp

This commit is contained in:
ValKmjolnir
2022-05-19 20:09:23 +08:00
parent d567f5abf8
commit 120ceb429a
11 changed files with 695 additions and 218 deletions

25
test/coroutine.nas Normal file
View File

@@ -0,0 +1,25 @@
# coroutine.nas by ValKmjolnir
# 2022/5/19
var fib=func(){
var (a,b)=(1,1);
if(coroutine.running()){
coroutine.yield(a);
coroutine.yield(b);
}
while(1){
(a,b)=(b,a+b);
if(coroutine.running())
coroutine.yield(b);
else
break;
}
return;
}
var co=[coroutine.create(fib),coroutine.create(fib)];
for(var i=0;i<45;i+=1){
var res=[coroutine.resume(co[0]),coroutine.resume(co[1])];
println('coroutine[0]:',res[0]==nil?nil:res[0][0],'\ncoroutine[1]:',res[1]==nil?nil:res[1][0]);
}
fib();