Index: Modules/mmapmodule.c =================================================================== --- Modules/mmapmodule.c (révision 84948) +++ Modules/mmapmodule.c (copie de travail) @@ -125,7 +125,8 @@ 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 */ @@ -570,6 +571,10 @@ 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 PyLong_FromLong((long) FlushViewOfFile(self->data+offset, size)); #elif defined(UNIX)