factor/core/compiler/alien/remote-control.factor

24 lines
625 B
Factor

! Copyright (C) 2007 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: alien parser threads words kernel-internals kernel ;
IN: remote-control
: eval-callback
"void*" { "char*" } "cdecl"
[ eval>string malloc-char-string ] alien-callback ;
: yield-callback
"void" { } "cdecl" [ yield ] alien-callback ;
: eval-callback* ( -- alien )
\ eval-callback compiled? [ eval-callback ] [ f ] if ;
: yield-callback* ( -- alien )
\ yield-callback compiled? [ yield-callback ] [ f ] if ;
IN: shells
: remote-control ( -- )
eval-callback* 15 setenv
yield-callback* 18 setenv ;