(define-library (srfi 18) (export current-thread thread? make-thread thread-name thread-specific thread-specific-set! thread-start! thread-yield! thread-sleep! thread-terminate! thread-join! mutex? make-mutex mutex-name mutex-specific mutex-specific-set! mutex-state mutex-lock! mutex-unlock! condition-variable? make-condition-variable condition-variable-name condition-variable-specific condition-variable-specific-set! condition-variable-signal! condition-variable-broadcast! current-time time? time->seconds seconds->time current-exception-handler with-exception-handler raise join-timeout-exception? abandoned-mutex-exception? terminated-thread-exception? uncaught-exception? uncaught-exception-reason) (cond-expand (threads (import (chibi) (srfi 9) (chibi ast) (except (chibi time) time->seconds seconds->time)) (include "18/types.scm") (include-shared "18/threads") (include "18/interface.scm")) (else (error "chibi was not compiled with threading support"))))