0.8.6.10
The diff is kind of noisy, but it's really pretty simple
The goal here is to deal with multiple 'session's in a
slightly more sendible way, and for QUIT to kill off
background threads if any are running
We create a SESSION struct with various locks and queues,
so replacing about 4 special variables with one *SESSION*
structure object.
MAKE-THREAD adds the new thread id to the current session
WITH-NEW-SESSION removes the current thread from the session,
then creates a new session containing only the current thread
and rebinds *SESSION* to it. It's used by MAKE-LISTENER-THREAD
and is also exported albeit in a "we reserve the right to
change this but are unlikely to" fashion
TERMINATE-SESSION terminates all threads in the session other
than the caller. %END-OF-THE-WORLD-HANDLER calls it
Also exported *INVOKE-DEBUGGER-HOOK* from SB-EXT for SLIME and
similar alternate debugging interfaces to use.