diff options
author | Travis E. Oliphant <oliphant@enthought.com> | 2008-06-06 20:52:38 (GMT) |
---|---|---|
committer | Travis E. Oliphant <oliphant@enthought.com> | 2008-06-06 20:52:38 (GMT) |
commit | 3900088cb6d70769c7905ea0afa8b6f161186fde (patch) | |
tree | 7cb5be0660b0801312b26202635b24f9e977cf73 | |
parent | b2750b5d334e9c8d262009069bce41c15803eca0 (diff) | |
download | cpython-3900088cb6d70769c7905ea0afa8b6f161186fde.zip cpython-3900088cb6d70769c7905ea0afa8b6f161186fde.tar.gz cpython-3900088cb6d70769c7905ea0afa8b6f161186fde.tar.bz2 |
Remove locking from buffer protocol as-per discussion.
-rw-r--r-- | Include/object.h | 11 | ||||
-rw-r--r-- | Modules/_bsddb.c | 6 | ||||
-rw-r--r-- | Modules/_ctypes/_ctypes.c | 5 | ||||
-rw-r--r-- | Modules/arraymodule.c | 5 | ||||
-rw-r--r-- | Objects/abstract.c | 6 | ||||
-rw-r--r-- | Objects/memoryobject.c | 3 |
6 files changed, 0 insertions, 36 deletions
diff --git a/Include/object.h b/Include/object.h index 62c4961..e924131 100644 --- a/Include/object.h +++ b/Include/object.h @@ -163,7 +163,6 @@ typedef void (*releasebufferproc)(PyObject *, Py_buffer *); #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 @@ typedef void (*releasebufferproc)(PyObject *, Py_buffer *); #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 diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c index 04c3835..3a67a1e 100644 --- a/Modules/_bsddb.c +++ b/Modules/_bsddb.c @@ -312,12 +312,6 @@ static Py_buffer * _malloc_view(PyObject *obj) "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"); diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index fe598d7..c840757 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -2449,11 +2449,6 @@ static int CData_GetBuffer(PyObject *_self, Py_buffer *view, int flags) 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; diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index a84126d..ea59a42 100644 --- a/Modules/arraymodule.c +++ b/Modules/arraymodule.c @@ -1779,11 +1779,6 @@ static const void *emptybuf = ""; 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; diff --git a/Objects/abstract.c b/Objects/abstract.c index 11adc77..60a5e84 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -672,12 +672,6 @@ PyBuffer_FillInfo(Py_buffer *view, void *buf, Py_ssize_t len, 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, diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c index 27ceb7a..9bb1697 100644 --- a/Objects/memoryobject.c +++ b/Objects/memoryobject.c @@ -230,9 +230,6 @@ PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char fort) case PyBUF_WRITE: flags = PyBUF_FULL; break; - case PyBUF_SHADOW: - flags = PyBUF_FULL_XLCK; - break; } if (PyObject_GetBuffer(obj, view, flags) != 0) { |