~ chicken-core (master) /tests/callback-tests.scm


 1;;;; callback-tests.scm
 2
 3(import (only (chicken process-context) command-line-arguments))
 4(import (only (scheme base) call/cc))
 5
 6(define k1)
 7
 8(define-external (foo) void
 9  (call/cc
10   (lambda (k) (set! k1 k)))
11  (print "hi!"))
12
13#>
14extern void foo();
15static void bar() { foo(); }
16<#
17
18(print "callbacks ...")
19((foreign-safe-lambda void "bar"))
20
21(when (member "twice" (command-line-arguments))
22  (k1 #f))
Trap