Index: Include/object.h =================================================================== --- Include/object.h (Revision 63975) +++ Include/object.h (Arbeitskopie) @@ -163,7 +163,6 @@ #define PyBUF_WRITABLE 0x0001 /* we used to include an E, backwards compatible alias */ #define PyBUF_WRITEABLE PyBUF_WRITABLE -#define PyBUF_LOCK 0x0002 #define PyBUF_FORMAT 0x0004 #define PyBUF_ND 0x0008 #define PyBUF_STRIDES (0x0010 | PyBUF_ND) @@ -174,25 +173,15 @@ #define PyBUF_CONTIG (PyBUF_ND | PyBUF_WRITABLE) #define PyBUF_CONTIG_RO (PyBUF_ND) -#define PyBUF_CONTIG_LCK (PyBUF_ND | PyBUF_LOCK) -#define PyBUF_CONTIG_XLCK (PyBUF_ND | PyBUF_LOCK | PyBUF_WRITABLE) #define PyBUF_STRIDED (PyBUF_STRIDES | PyBUF_WRITABLE) #define PyBUF_STRIDED_RO (PyBUF_STRIDES) -#define PyBUF_STRIDED_LCK (PyBUF_STRIDES | PyBUF_LOCK) -#define PyBUF_STRIDED_XLCK (PyBUF_STRIDES | PyBUF_LOCK | PyBUF_WRITABLE) #define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_WRITABLE | PyBUF_FORMAT) #define PyBUF_RECORDS_RO (PyBUF_STRIDES | PyBUF_FORMAT) -#define PyBUF_RECORDS_LCK (PyBUF_STRIDES | PyBUF_LOCK | PyBUF_FORMAT) -#define PyBUF_RECORDS_XLCK (PyBUF_STRIDES | PyBUF_LOCK | PyBUF_WRITABLE \ - | PyBUF_FORMAT) #define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_WRITABLE | PyBUF_FORMAT) #define PyBUF_FULL_RO (PyBUF_INDIRECT | PyBUF_FORMAT) -#define PyBUF_FULL_LCK (PyBUF_INDIRECT | PyBUF_LOCK | PyBUF_FORMAT) -#define PyBUF_FULL_XLCK (PyBUF_INDIRECT | PyBUF_LOCK | PyBUF_WRITABLE \ - | PyBUF_FORMAT) #define PyBUF_READ 0x100 Index: Objects/abstract.c =================================================================== --- Objects/abstract.c (Revision 63975) +++ Objects/abstract.c (Arbeitskopie) @@ -672,12 +672,6 @@ int readonly, int flags) { if (view == NULL) return 0; - if (((flags & PyBUF_LOCK) == PyBUF_LOCK) && - readonly != 0) { - PyErr_SetString(PyExc_BufferError, - "Cannot lock this object."); - return -1; - } if (((flags & PyBUF_WRITABLE) == PyBUF_WRITABLE) && (readonly == 1)) { PyErr_SetString(PyExc_BufferError, Index: Objects/memoryobject.c =================================================================== --- Objects/memoryobject.c (Revision 63975) +++ Objects/memoryobject.c (Arbeitskopie) @@ -230,9 +230,6 @@ case PyBUF_WRITE: flags = PyBUF_FULL; break; - case PyBUF_SHADOW: - flags = PyBUF_FULL_XLCK; - break; } if (PyObject_GetBuffer(obj, view, flags) != 0) { Index: Modules/_ctypes/_ctypes.c =================================================================== --- Modules/_ctypes/_ctypes.c (Revision 63975) +++ Modules/_ctypes/_ctypes.c (Arbeitskopie) @@ -2449,11 +2449,6 @@ Py_ssize_t i; if (view == NULL) return 0; - if (((flags & PyBUF_LOCK) == PyBUF_LOCK)) { - PyErr_SetString(PyExc_BufferError, - "Cannot lock this object."); - return -1; - } view->buf = self->b_ptr; view->len = self->b_size; Index: Modules/_bsddb.c =================================================================== --- Modules/_bsddb.c (Revision 63975) +++ Modules/_bsddb.c (Arbeitskopie) @@ -312,12 +312,6 @@ "Py_buffer malloc failed"); return NULL; } - /* We use PyBUF_LOCK to prevent other threads from trashing the data - buffer while we release the GIL. http://bugs.python.org/issue1035 */ - if (PyObject_GetBuffer(obj, view, PyBUF_LOCK) == -1) { - PyMem_Free(view); - return NULL; - } if (view->ndim > 1) { PyErr_SetString(PyExc_BufferError, "buffers must be single dimension"); Index: Modules/arraymodule.c =================================================================== --- Modules/arraymodule.c (Revision 63975) +++ Modules/arraymodule.c (Arbeitskopie) @@ -1779,11 +1779,6 @@ static int array_buffer_getbuf(arrayobject *self, Py_buffer *view, int flags) { - if ((flags & PyBUF_LOCK)) { - PyErr_SetString(PyExc_BufferError, - "Cannot lock data"); - return -1; - } if (view==NULL) goto finish; view->buf = (void *)self->ob_item;