[gambit-list] Cython __cleanup() problem

David Dreisigmeyer dwdreisigmeyer at gmail.com
Wed Jan 5 14:52:15 EST 2011


It will print before the call to __cleanup() but not after the call.

What would the downside of not calling __cleanup() be?  (I'm currently
using this way.)

Thanks Marc,

-Dave


On Wed, Jan 5, 2011 at 2:43 PM, Marc Feeley <feeley at iro.umontreal.ca> wrote:
>
> On 2011-01-05, at 12:14 PM, David Dreisigmeyer wrote:
>
>> Then in ipython:
>>
>>
>> Python 2.7.1 (r271:86832, Dec 29 2010, 01:38:09)
>> Type "copyright", "credits" or "license" for more information.
>>
>> IPython 0.10.1 -- An enhanced Interactive Python.
>> ?         -> Introduction and overview of IPython's features.
>> %quickref -> Quick reference.
>> help      -> Python's own help system.
>> object?   -> Details about 'object'. ?object also works, ?? prints more.
>>
>> In [2]: import cython_gambit_test
>>
>> In [3]: cython_gambit_test.cython_gambit_test ()
>> result = #!void
>> result = 16
>> result = #<datum-parsing-exception #2>
>> result = #<unbound-global-exception #3>
>>
>> Process Python exited abnormally with code 1
>
> If I understand correctly, it is Python that is exiting abnormally.  In other words it is not during the call to ___cleanup() that the process exits (but to make sure, add a printf just before and just after the call to ___cleanup()).
>
> Assuming that that is true, it looks like a bad interaction between Gambit's runtime system and Python's runtime system.  For example, Gambit restoring a signal handler that Python relies on, or changing the terminal settings, the timers, etc.  You'll have to dig deeper to find the actual problem (with strace on Linux, I don't remember what it is called on Mac OS X).
>
> If you want a quick an dirty solution, just don't call ___cleanup()!
>
> Marc
>
>



More information about the Gambit-list mailing list