+(def!type thread-name ()
+ 'simple-string)
+
+(def!struct (thread (:constructor %make-thread))
+ #!+sb-doc
+ "Thread type. Do not rely on threads being structs as it may change
+in future versions."
+ (name nil :type (or thread-name null))
+ (%alive-p nil :type boolean)
+ (os-thread nil :type (or integer null))
+ (interruptions nil :type list)
+ (result nil :type list)
+ (interruptions-lock
+ (make-mutex :name "thread interruptions lock")
+ :type mutex)
+ (result-lock
+ (make-mutex :name "thread result lock")
+ :type mutex)
+ waiting-for)
+