diff options
Diffstat (limited to 'shmem/unix/shm.c')
-rw-r--r-- | shmem/unix/shm.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/shmem/unix/shm.c b/shmem/unix/shm.c index 95d1c053f..134807de5 100644 --- a/shmem/unix/shm.c +++ b/shmem/unix/shm.c @@ -49,7 +49,12 @@ static apr_status_t shm_cleanup_owner(void *m_) if (munmap(m->base, m->realsize) == -1) { return errno; } - return apr_file_remove(m->filename, m->pool); + if (access(m->filename, F_OK)) { + return APR_SUCCESS; + } + else { + return apr_file_remove(m->filename, m->pool); + } #endif #if APR_USE_SHMEM_MMAP_SHM if (munmap(m->base, m->realsize) == -1) { @@ -70,7 +75,12 @@ static apr_status_t shm_cleanup_owner(void *m_) if (shmdt(m->base) == -1) { return errno; } - return apr_file_remove(m->filename, m->pool); + if (access(m->filename, F_OK)) { + return APR_SUCCESS; + } + else { + return apr_file_remove(m->filename, m->pool); + } #endif } |