26 lines
804 B
Factor
26 lines
804 B
Factor
! Copyright (C) 2007, 2008 Slava Pestov.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: accessors alien alien.c-types alien.strings parser
|
|
threads words kernel.private kernel io.encodings.utf8 eval ;
|
|
IN: alien.remote-control
|
|
|
|
: eval-callback ( -- callback )
|
|
"void*" { "char*" } "cdecl"
|
|
[ eval>string utf8 malloc-string ] alien-callback ;
|
|
|
|
: yield-callback ( -- callback )
|
|
"void" { } "cdecl" [ yield ] alien-callback ;
|
|
|
|
: sleep-callback ( -- callback )
|
|
"void" { "long" } "cdecl" [ sleep ] alien-callback ;
|
|
|
|
: ?callback ( word -- alien )
|
|
dup compiled>> [ execute ] [ drop f ] if ; inline
|
|
|
|
: init-remote-control ( -- )
|
|
\ eval-callback ?callback 16 setenv
|
|
\ yield-callback ?callback 17 setenv
|
|
\ sleep-callback ?callback 18 setenv ;
|
|
|
|
MAIN: init-remote-control
|