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
