Mercurial > hg > Papers > 2020 > koo-thesis
view Prepaper/code/abyss.p6 @ 22:b96b3244307b
update paper & slide
author | e165727 <e165727@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 16 Feb 2020 18:20:36 +0900 |
parents | e234acddcfab |
children | 27f7561b1135 |
line wrap: on
line source
use v6.c; unit class Abyss::Server:ver<0.0.1>:auth<cpan:ANATOFUZ>; use MONKEY-SEE-NO-EVAL; use IO::Socket::Unix; use NativeCall; sub close(int32) returns int32 is native { ... } sub dup(int32 $old) returns int32 is native { ... } sub dup2(int32 $new, int32 $old) returns int32 is native { ... } method readeval { my $listen = IO::Socket::Unix.new( :listen, :localhost<localhost>, :localport(3333) ); my $backup = dup(1); say DateTime.now; loop { my $conn = $listen.accept; my $sock_msg; my $buf = $conn.recv(); $sock_msg = $buf; close(1); dup2($conn.native-descriptor(), 1); EVALFILE $sock_msg; dup2($backup, 1); close($backup); $conn.close; } $listen.close; }