X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fthread.lisp;h=3d1ecd4086c76206f96621797818c88c0c1c7a2a;hb=db0110475c0db5dc3cb1bb12de0b0c475880899e;hp=d796f604eb42cb99dabffd02531192f5f10f7a99;hpb=7c9bae1be633be46bc454bd34f55263b24aafca8;p=sbcl.git diff --git a/src/code/thread.lisp b/src/code/thread.lisp index d796f60..3d1ecd4 100644 --- a/src/code/thread.lisp +++ b/src/code/thread.lisp @@ -11,6 +11,9 @@ (in-package "SB!THREAD") +(eval-when (:compile-toplevel :load-toplevel :execute) + (sb!xc:proclaim '(sb!ext:always-bound *current-thread*))) + (def!type thread-name () 'simple-string) @@ -20,6 +23,7 @@ in future versions." (name nil :type (or thread-name null)) (%alive-p nil :type boolean) + (%ephemeral-p nil :type boolean) (os-thread nil :type (or integer null)) (interruptions nil :type list) (result nil :type list) @@ -31,6 +35,21 @@ in future versions." :type mutex) waiting-for) +(def!struct (foreign-thread + (:include thread) + (:conc-name "THREAD-")) + #!+sb-doc + "Type of native threads which are attached to the runtime as Lisp threads +temporarily.") + +#!+(and sb-safepoint-strictly (not win32)) +(def!struct (signal-handling-thread + (:include foreign-thread) + (:conc-name "THREAD-")) + #!+sb-doc + "Asynchronous signal handling thread." + (signal-number nil :type integer)) + (def!struct mutex #!+sb-doc "Mutex type."