"m.u.k" <[EMAIL PROTECTED]> wrote: > Josiah Carlson <[EMAIL PROTECTED]> wrote in > news:[EMAIL PROTECTED]: > > > Offering any hook for Py_FatalError may not even be enough, as some of > > those errors are caused by insufficient memory. What if a hook were > > available, but it couldn't be called because there wasn't enough memory? > > > > Of course there is the option of pre-allocating a few kilobytes, then > > just before one calls the hook, freeing that memory so that the hook can > > execute (assuming the hook is small enough). I'm not sure if this is a > > desireable general mechanic, but it may be sufficient for you. If you > > do figure out a logging mechanism that is almost guaranteed to execute > > on FatalError, post it to sourceforge. > > IMHO this should be left to hooker(apparerently not right word, but you get > the point :) ). If he allocates more mem. or does heavy stuff, that will just > fail. Anyway abort() is a failure too. Either abort() will end the process or > OS will on such a critical error.
I'm not talking about doing memory-intensive callbacks, I'm talking about the function call itself. >From what I understand, any function call in Python requires a memory allocation. This is trivially true in the case of rentrant Python calls; which requires the allocation of a frame object from heap memory, and in the case of all calls, from C stack memory. If you cannot allocate a frame for __del__ method calling (one of the error conditions), you certainly aren't going to be able to call a Python callback (no heap memory), and may not have enough stack memory required by your logging function; even if it is written in C (especially if you construct a nontrivial portion of the message in memory before it is printed). If I'm wrong, I'd like to hear it, but I'm still waiting for your patch on sourceforge. - Josiah _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com