add unix.fork&unix.pipe(do not work on windows platform)
This commit is contained in:
parent
61666d275d
commit
d8156e839b
4
lib.nas
4
lib.nas
|
@ -273,8 +273,8 @@ var math=
|
|||
|
||||
var unix=
|
||||
{
|
||||
pipe: func(){die("not supported yet");},
|
||||
fork: func(){die("not supported yet");},
|
||||
pipe: func(){return __builtin_pipe;},
|
||||
fork: func(){return __builtin_fork;},
|
||||
dup2: func(fd0,fd1){die("not supported yet");},
|
||||
exec: func(filename,argv,envp){die("not supported yet");},
|
||||
waitpid: func(pid,nohang=0){die("not supported yet");},
|
||||
|
|
|
@ -79,6 +79,8 @@ nas_native(builtin_sfld);
|
|||
nas_native(builtin_setfld);
|
||||
nas_native(builtin_buf);
|
||||
nas_native(builtin_sleep);
|
||||
nas_native(builtin_pipe);
|
||||
nas_native(builtin_fork);
|
||||
nas_native(builtin_opendir);
|
||||
nas_native(builtin_readdir);
|
||||
nas_native(builtin_closedir);
|
||||
|
@ -163,6 +165,8 @@ struct
|
|||
{"__builtin_setfld", builtin_setfld },
|
||||
{"__builtin_buf", builtin_buf },
|
||||
{"__builtin_sleep", builtin_sleep },
|
||||
{"__builtin_pipe", builtin_pipe },
|
||||
{"__builtin_fork", builtin_fork },
|
||||
{"__builtin_opendir", builtin_opendir },
|
||||
{"__builtin_readdir", builtin_readdir },
|
||||
{"__builtin_closedir",builtin_closedir},
|
||||
|
@ -955,6 +959,26 @@ nasal_ref builtin_sleep(nasal_ref* local,nasal_gc& gc)
|
|||
usleep((useconds_t)(val.num()*1e6));
|
||||
return nil;
|
||||
}
|
||||
nasal_ref builtin_pipe(nasal_ref* local,nasal_gc& gc)
|
||||
{
|
||||
int fd[2];
|
||||
nasal_ref res=gc.alloc(vm_vec);
|
||||
#ifndef _WIN32
|
||||
if(pipe(fd)==-1)
|
||||
return builtin_err("pipe","failed to create pipe");
|
||||
res.vec()->elems.push_back({vm_num,(double)fd[0]});
|
||||
res.vec()->elems.push_back({vm_num,(double)fd[1]});
|
||||
return res;
|
||||
#endif
|
||||
return builtin_err("pipe","not supported yet");
|
||||
}
|
||||
nasal_ref builtin_fork(nasal_ref* local,nasal_gc& gc)
|
||||
{
|
||||
#ifndef _WIN32
|
||||
return {vm_num,(double)fork()};
|
||||
#endif
|
||||
return builtin_err("fork","not supported yet");
|
||||
}
|
||||
nasal_ref builtin_opendir(nasal_ref* local,nasal_gc& gc)
|
||||
{
|
||||
nasal_ref path=local[1];
|
||||
|
|
|
@ -273,8 +273,8 @@ var math=
|
|||
|
||||
var unix=
|
||||
{
|
||||
pipe: func(){die("not supported yet");},
|
||||
fork: func(){die("not supported yet");},
|
||||
pipe: func(){return __builtin_pipe;},
|
||||
fork: func(){return __builtin_fork;},
|
||||
dup2: func(fd0,fd1){die("not supported yet");},
|
||||
exec: func(filename,argv,envp){die("not supported yet");},
|
||||
waitpid: func(pid,nohang=0){die("not supported yet");},
|
||||
|
|
|
@ -1,7 +1,28 @@
|
|||
import("lib.nas");
|
||||
|
||||
var geodinfo=func(lat,lon){}
|
||||
var maketimer=func(t,f){}
|
||||
var geodinfo=func(lat,lon){
|
||||
return {};
|
||||
}
|
||||
var maketimer=func(interval,function){
|
||||
return {
|
||||
isRunning:0,
|
||||
start:func(){
|
||||
me.isRunning=1;
|
||||
while(1){
|
||||
unix.sleep(interval);
|
||||
function();
|
||||
}
|
||||
},
|
||||
stop:func(){
|
||||
me.isRunning=0;
|
||||
},
|
||||
restart:func(interval){
|
||||
|
||||
},
|
||||
singleShot:0,
|
||||
simulatedTime:0
|
||||
};
|
||||
}
|
||||
|
||||
var props=
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue