[Openmcl-devel] yielding to a thread
Gary Byers
gb at clozure.com
Wed Jun 30 10:40:50 PDT 2004
On Wed, 30 Jun 2004, Marco Baringer wrote:
> Gary Byers <gb at clozure.com> writes:
>
> > One thing that you might try is
> >
> > ? (:y) ; with no argument
> >
> > If that quickly/quietly returns to a "? ", then that might tell us
> > something.
>
> it quickly returns to the terminal.
>
> one thing i tried was to startup a new slime server and attach a
> debugger to the thread labeled as "Initial", here's the backtrace from
> that thread:
>
> Interrupt from Emacs
> [Condition of type SIMPLE-ERROR]
>
> Restarts:
> 0: [CONTINUE] Continue from interrupt.
> 1: [ABORT] #<RESTART ABORT #x21AF76>
> 2: [ABORT-BREAK] #<RESTART ABORT-BREAK #x21AF9E>
>
> Backtrace:
> 0: (CCL::STREAM-IOBLOCK #<TCP-STREAM :CLOSED #x65D7EE6> 'T)
> 1: (#<CCL::STANDARD-KERNEL-METHOD STREAM-FORCE-OUTPUT (CCL::BUFFERED-OUTPUT-STREAM-MIXIN)> #<TCP-STREAM :CLOSED #x65D7EE6>)
> 2: (CCL::EVENT-POLL)
> 3: (CCL::HOUSEKEEPING)
> 4: (#<Anonymous Function #x60F8A5E>)
>
> Any attempts to get locals or other stack frames from this debugger
> fail silently, so i can't get any more info than this. however, the
> only open tcp streams are connections to swank servers, and those
> shouldn't happening in the initial thread. this makes me think that
> either slime is not threading when it should or the thread names are
> getting confused.
>
> --
> -Marco
Well, it does look like that's the "real" initial thread, which basically
does:
(loop
(sleep *so-that-this-happens-a-few-times-per-second*)
(dolist (stream list-of-streams-to-automatically-force-output-on)
(try-to-force-output-on stream)))
and it (not too robustly) got an error trying to do a FORCE-OUTPUT
on a closed TCP stream. (Checking for a closed stream and removing
it from the list seems like it'd be a better idea.)
If you still have that lisp running, could you drop into the kernel
debugger:
? (ccl::dbg)
and send me the output from its backtrace command ?
More information about the Openmcl-devel
mailing list