diff --git a/TODO b/TODO index 9ba2329f..03b98412 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,6 @@ Initiatives: - srfi 18 - missing thread functions, more complex threading examples -- test on a 64-bit platform/vm - api documentation - syntax-rules integration (WIP, works sometimes but needs to compile smaller) - r7rs missing features diff --git a/srfi/18.sld b/srfi/18.sld index b2b6aa76..e5ff42e9 100644 --- a/srfi/18.sld +++ b/srfi/18.sld @@ -18,7 +18,7 @@ thread-start! thread-sleep! thread-yield! - ;; TODO: thread-terminate! + thread-terminate! ;; TODO: thread-join! mutex? @@ -84,7 +84,9 @@ (mutator-id (Cyc-spawn-thread! thunk))) (vector-set! t 2 mutator-id))) (define (thread-yield!) (thread-sleep! 1)) -; (define (thread-terminate!) (Cyc-end-thread!)) + (define-c thread-terminate! + "(void *data, int argc, closure _, object k)" + " Cyc_end_thread(data); ") ;; TODO: thread-join! (define-c thread-sleep!