[Python-Dev] PEP 298, final (?) version

Guido van Rossum guido@python.org
Fri, 02 Aug 2002 10:19:53 -0400


> > >         void PyObject_ReleaseFixedBuffer(PyObject *obj);
> > 
> > Would it be useful to allow bf_releasefixedbuffer to return an int
> > indicating an exception?  For instance, it could raise an exception if the
> > extension errantly releases more times than it has acquired
> 
> The code making the call might not be in an easy position
> to deal with an exception -- e.g. an asynchronous I/O
> routine called from a signal handler, another thread,
> etc.
> 
> Maybe use the warning mechanism to produce a message?

In an asynch I/O situation, calling PyErr_Warn() is out of the
question (it invokes Python code!).

I propose to make it a fatal error -- after all the only reason why
bf_releasefixedbuffer could fail should be that the caller makes a
mistake.  Since that's a bug in C code, a fatail error is acceptable.

--Guido van Rossum (home page: http://www.python.org/~guido/)