summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorR. David Murray <rdmurray@bitdance.com>2010-12-11 02:13:04 (GMT)
committerR. David Murray <rdmurray@bitdance.com>2010-12-11 02:13:04 (GMT)
commit2a4b3fce9d9976de0ae2e9f3e658a24b13b5fad6 (patch)
tree16084b4f8d0ee522dff63bd09bc572a7cdd9a89f /Modules
parent5f76602fb093944c557743075fee220b7389f33a (diff)
downloadcpython-2a4b3fce9d9976de0ae2e9f3e658a24b13b5fad6.zip
cpython-2a4b3fce9d9976de0ae2e9f3e658a24b13b5fad6.tar.gz
cpython-2a4b3fce9d9976de0ae2e9f3e658a24b13b5fad6.tar.bz2
Merged revisions 85678 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r85678 | r.david.murray | 2010-10-17 21:14:06 -0400 (Sun, 17 Oct 2010) | 5 lines #678250: Make mmap flush a noop on ACCESS_READ and ACCESS_COPY. Patch by Sébastien Sablé. This solves a test_mmap failure on AIX. ........
Diffstat (limited to 'Modules')
-rw-r--r--Modules/mmapmodule.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index b53aae1..d6d1601 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -124,7 +124,8 @@ mmap_object_dealloc(mmap_object *m_obj)
if (m_obj->fd >= 0)
(void) close(m_obj->fd);
if (m_obj->data!=NULL) {
- msync(m_obj->data, m_obj->size, MS_SYNC);
+ if (m_obj->access != ACCESS_READ && m_obj->access != ACCESS_COPY)
+ msync(m_obj->data, m_obj->size, MS_SYNC);
munmap(m_obj->data, m_obj->size);
}
#endif /* UNIX */
@@ -559,6 +560,10 @@ mmap_flush_method(mmap_object *self, PyObject *args)
PyErr_SetString(PyExc_ValueError, "flush values out of range");
return NULL;
}
+
+ if (self->access == ACCESS_READ || self->access == ACCESS_COPY)
+ return PyLong_FromLong(0);
+
#ifdef MS_WINDOWS
return PyInt_FromLong((long) FlushViewOfFile(self->data+offset, size));
#elif defined(UNIX)