[cmucl-cvs] [git] CMU Common Lisp branch master updated. snapshot-2013-03-a-6-gc94b32f
Raymond Toy
rtoy at common-lisp.net
Mon Mar 25 03:14:02 UTC 2013
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMU Common Lisp".
The branch, master has been updated
via c94b32f927061d6e7b7ea1ebf92ccdb4c3b1a842 (commit)
from 0232d2242e5acf9d1654cd0e4d7883de9e9f4705 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c94b32f927061d6e7b7ea1ebf92ccdb4c3b1a842
Author: Raymond Toy <toy.raymond at gmail.com>
Date: Sun Mar 24 20:13:56 2013 -0700
Fix ticket:77 correctly, using the supplied patch link.
diff --git a/src/code/exports.lisp b/src/code/exports.lisp
index 2c3e0ff..6c7bbed 100644
--- a/src/code/exports.lisp
+++ b/src/code/exports.lisp
@@ -2388,6 +2388,7 @@
"ATOMIC-PUSH" "CURRENT-PROCESS" "DESTROY-PROCESS" "DISABLE-PROCESS"
"ENABLE-PROCESS" "INIT-STACK-GROUPS" "LOCK" "MAKE-STACK-GROUP"
"MAKE-LOCK" "MAKE-PROCESS" "PROCESS-ACTIVE-P"
+ "PROCESS-JOIN"
"PROCESS-ADD-ARREST-REASON" "PROCESS-ADD-RUN-REASON"
"PROCESS-ALIVE-P" "PROCESS-ARREST-REASONS"
"PROCESS-IDLE-TIME" "PROCESS-INTERRUPT" "PROCESS-NAME"
diff --git a/src/code/multi-proc.lisp b/src/code/multi-proc.lisp
index b0ce883..e478a95 100644
--- a/src/code/multi-proc.lisp
+++ b/src/code/multi-proc.lisp
@@ -298,6 +298,7 @@
(%real-time 0d0 :type double-float)
(%run-time 0d0 :type double-float)
(property-list nil :type list)
+ (%return-values nil :type list)
(initial-bindings nil :type list))
@@ -956,9 +957,11 @@
(with-simple-restart
(destroy "Destroy the process")
(setf *inhibit-scheduling* nil)
- (apply-with-bindings function
- nil
- initial-bindings))
+ (setf (process-%return-values *current-process*)
+ (multiple-value-list
+ (apply-with-bindings function
+ nil
+ initial-bindings))))
;; Normal exit.
(throw '%end-of-the-process nil))))
(setf *inhibit-scheduling* t)
@@ -1973,19 +1976,7 @@
#-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)
+(defun process-join (process)
(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)))
+ (values-list (process-%return-values process)))
diff --git a/src/general-info/release-20e.txt b/src/general-info/release-20e.txt
index 06c2fc6..d38c14c 100644
--- a/src/general-info/release-20e.txt
+++ b/src/general-info/release-20e.txt
@@ -42,7 +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.
+ * Add MP:PROCESS-JOIN, as given in ticket #77.
* ANSI compliance fixes:
* Attempts to modify the standard readtable or the standard pprint
-----------------------------------------------------------------------
Summary of changes:
src/code/exports.lisp | 1 +
src/code/multi-proc.lisp | 25 ++++++++-----------------
src/general-info/release-20e.txt | 2 +-
3 files changed, 10 insertions(+), 18 deletions(-)
hooks/post-receive
--
CMU Common Lisp
More information about the cmucl-cvs
mailing list