On 8/27/07, Gregory P. Smith <[EMAIL PROTECTED]> wrote:
> So I converted _bsddb.c to use the buffer API everywhere only to find
> that bytes objects don't support the PyBUF_LOCKDATA option of the
> buffer API...  I should've seen that coming.  :)  Anyways I opened a
> bug to track that.  Its needed in order to release the GIL while doing
> I/O from bytes objects.
>
>  http://bugs.python.org/issue1035
>
> My _bsddb patch is stored for posterity until issue1035 can be fixed
> in issue1036.  I'll test it another day ignoring the mutability issues
> (as the current _bssdb.c does with its direct use of bytes) and update
> the patch after squashing bugs.

Adding data locking shouldn't be too complicated, but is it necessary?
The bytes object does support locking the buffer in place; isn't that
enough? It means someone evil could still produce a phase error by
changing the contents while you're looking at it (basically sabotaging
their own application) but I don't see how they could cause a segfault
that way.

Even if you really need the LOCKDATA feature, perhaps you can check in
a slight mod of your code that uses SIMPLE for now -- use a macro for
the flags that's defined as PyBUF_SIMPLE and add a comment that you'd
like it to be LOCKDATA once bytes support that.

That way we have less code in the tracker and more in subversion --
always a good thing IMO.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)
_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to