[Openmcl-devel] linux process hang
gb at clozure.com
Thu Feb 3 06:01:26 UTC 2005
On Wed, 2 Feb 2005, Larry Pells wrote:
> I am trying to work on some implementing an interface to some foreign
> functions utilizing uffi as much as possible. I have added enough foreign
> functions and lisp callback functions to pass complete 2 test cases.
> When I add about 95 callback functions, openmcl hangs on the return from a
> callback while executing the first test. If I place stderr output in the c
> library, nothing is displayed. If I place output (and flush it) in lisp
> right before returning to c, it is displayed.
> I am puzzled as to what could be causing openmcl to hang when I add additional
> callback function that are not being used yet. I am running openmcl
> 0.14.2-p1 updated and built from CVS
> ':pserver:cvs at clozure.com:/usr/local/tmpcvs/ccl-0.14' as of a couple of days
> ago. I am running this on Yellowdog 3.0.1.
> Any help would be appreciated.
There's a special variable: CCL::%PASCAL-FUNCTION% (way back when, the
Mac Toolbox generally followed 68K Pascal calling conventsions) whose
value should be a a simple-vector; each non-null element of that
vector should be a 5-element vector (a pointer, a boolean - not used
under Linux - a lisp function, a symbol, and another boolean, in that
order). The last few elements of the CCL::%PASCAL-FUNCTIONS% array
might be empty, and there should be non-empty elements for the handful
of callbacks that the lisp runtime system uses and for any that you've
Does that look correct, so far (and as far as you can tell) ?
(Everything that references or modifies the contents of that vector
should hold a lock while doing so; when the vector fills up, a
slightly larger one gets allocated, old entries get copied to the
new vector, and %PASCAL-FUNCTIONS% is updated.)
More information about the Openmcl-devel