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 458231d178c7c98798c653f574b6aab839637bc1 (commit) from 9ca40a2b90607cd33577644c5cd5d38ae5fe1354 (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 458231d178c7c98798c653f574b6aab839637bc1 Author: Raymond Toy toy.raymond@gmail.com Date: Thu Aug 28 20:03:24 2014 -0700
If a process is not schedulable because it has no run-reasons and/or an arrest-reason, destroy-process doesn't take effect. Destroy-process sets process-state to :active to try to ensure it gets the interrupt, but it also needs to clear process-%arrest-reasons and push something on process-%run-reasons.
Patch from Paul Foley.
diff --git a/src/code/multi-proc.lisp b/src/code/multi-proc.lisp index 4e2b1bc..c73f0b4 100644 --- a/src/code/multi-proc.lisp +++ b/src/code/multi-proc.lisp @@ -1044,7 +1044,9 @@ (process-interrupts process)) ;; Ensure that the process is active so that it can accept this ;; interrupt. - (setf (process-state process) :active))) + (setf (process-state process) :active + (process-%arrest-reasons process) nil) + (push :destroyed (process-%run-reasons process)))) ;; Should we wait until it's dead? (process-yield))
-----------------------------------------------------------------------
Summary of changes: src/code/multi-proc.lisp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
hooks/post-receive