|
From: Vladimir T. <vtz...@gm...> - 2011-03-06 22:28:01
|
On 3/6/11, Don Cohen <don...@is...> wrote:
>
> Code is below. (It's similar to what I've sent before.)
> ...
> (unwind-protect
> (mt:thread-interrupt
> ans
> :function
> (lambda nil
> (let ((*standard-input* socket)
> (*standard-output* socket)
> (*debug-io* socket)
> (*error-output* socket)
> (*trace-output* socket)
> (*query-io* socket))
> (break "debug"))))
> (close socket))))
You are closing the socket too early! In your previous mails the code
of your debug-server closes the socket within the interrupted thread:
(mt:thread-interrupt
ans
:function
(lambda nil
(let ((*standard-input* socket)
(*standard-output* socket)
(*debug-io* socket)
(*error-output* socket)
(*trace-output* socket)
(*query-io* socket))
(unwind-protect
(break "debug")
(close socket)))))
However having segfaults even in this case (read from closed socket)
is not good. Will check.
Vladimir
|