[armedbear-devel] [armedbear-cvs] r13530 - trunk/abcl/src/org/armedbear/lisp

Ville Voutilainen ville.voutilainen at gmail.com
Mon Aug 22 10:22:32 UTC 2011

On 22 August 2011 12:52,  <mevenson at common-lisp.net> wrote:
> Author: mevenson
> Date: Mon Aug 22 02:52:28 2011
> New Revision: 13530
> Log:
> All LispThread objects can act on a ProcessingTerminated exception.
> Without this modifications, threads created with the
> THREADS:MAKE-THREADS cannot successfully call the EXT:QUIT or EXT:EXIT
> functions.  This prevented the SLIME quit implementation from
> successfully quitting implementations.
> Note that all threads can always execute a form like
>   (jstatic "exit" "java.lang.System" 0)
> to uncermoniously exit the JVM, so there is nothing gained
> security-wise by preventing threads from using the official Lisp
> interfaces.
> +                catch (ProcessingTerminated e) {
> +                    System.exit(e.getStatus());
> +                }

This looks.. ..unfortunate. We should not get into a situation where a
catches this exception, the exception is supposed to be used for terminating
the repl if it can't load. It's fine as a stopgap measure, but exit
requests from
threads shouldn't end up throwing that exception.

More information about the armedbear-devel mailing list