[Openmcl-devel] Question about 'process-interrupt run on exhausted process'

Denis Bueno dbueno at gmail.com
Sat Feb 10 16:34:44 PST 2007


Dear list:

I'm having a problem when executing openmcl as a child process of some
OCaml code I'm writing. I am writing a compiler for a language which
embeds Common Lisp (let (...) ...) fragments that return integers.

I know that each let-form is well-formed and results in an integer.
For each let-form in the source I'm compiling, I create one openmcl
process, evaluate the let form, read back the result, and kill off the
process. This is all done from a single thread, so no two openmcl
processes should be alive at the same time.

However, *sometimes* (maybe 1 time every 100 or so openmcl processes)
I get the following error

,----
| > Error: process-interrupt run on exhausted #<PROCESS listener(1)
[Exhausted] #x1046DB06C>
| > While executing: #<CCL::STANDARD-KERNEL-METHOD PROCESS-INTERRUPT
(PROCESS T)>
|
| ;; not sure the ordering of these two outputs of OpenMCL
|
| 7
| > Type :POP to abort.
| Type :? for other options.
`----

(The note inside the fragments above simply means that since the top
half of the errors occurs in the terminal running the unit tests, and
the bottom half occurs in the log of the file being tested, and both
come from the openmcl process, I'm not sure which text comes first. I
assume someone else will, or it won't matter.)

The output above is generated with a certain shell command [1]. Does
anyone know what could cause the above? Is there a way to avoid it?

Thanks in advance.

-Denis

[1]
openmcl --quiet --no-init --batch --eval '(handler-case    (progn
(print (let ((c1 2)
(c2 2)
(d1 -2)
(d2 -3)
)
(ceiling (sqrt (+ (expt (- d1 c1) 2) (expt (- d2 c2) 2))))))
(finish-output) (quit))    (process-reset () (finish-output) (quit))
 (t (cond) (progn (princ cond) (finish-output) (quit))) )'



More information about the Openmcl-devel mailing list