Fix ticket:77 by adding the code given in the ticket.
authorRaymond Toy <toy.raymond@gmail.com>
Sun, 24 Mar 2013 16:43:33 +0000 (09:43 -0700)
committerRaymond Toy <toy.raymond@gmail.com>
Sun, 24 Mar 2013 16:43:33 +0000 (09:43 -0700)
src/code/multi-proc.lisp
src/general-info/release-20e.txt

index 8b2df04..b0ce883 100644 (file)
                  ,lock 2 *current-process* nil)
          #-x86 (when (eq (lock-process ,lock) *current-process*)
                   (setf (lock-process ,lock) nil)))))))
+
+(defun %make-thread (function name)
+  (mp:make-process (lambda ()
+                     (let ((return-values
+                             (multiple-value-list (funcall function))))
+                       (setf (getf (mp:process-property-list mp:*current-process*)
+                                   'return-values)
+                             return-values)
+                       (values-list return-values)))
+                   :name name))
+
+(defun join-thread (thread)
+  (mp:process-wait (format nil "Waiting for thread ~A to complete" thread)
+                   (lambda () (not (mp:process-alive-p thread))))
+  (let ((return-values
+          (getf (mp:process-property-list thread) 'return-values)))
+    (values-list return-values)))
index 5ec6b03..06c2fc6 100644 (file)
@@ -42,6 +42,7 @@ New in this release:
       * :I486 and :PENTIUM (Always assume we're running on at least a
         Pentium.)
     * Update unicode to support Unicode 6.2.
+    * Add MP:JOIN-THREAD, as given in ticket #77.
 
   * ANSI compliance fixes:
     * Attempts to modify the standard readtable or the standard pprint
@@ -70,6 +71,7 @@ New in this release:
     * Ticket #74 fixed.
     * Ticket #76 fixed.
     * Ticket #79 fixed.
+    * Ticket #77 fixed.
 
   * Other changes:
     * -8 option for build-all.sh is deprecated since we don't