summaryrefslogtreecommitdiff
path: root/shmem
diff options
context:
space:
mode:
authorfuankg <fuankg@13f79535-47bb-0310-9956-ffa450edef68>2009-10-05 18:06:25 +0000
committerfuankg <fuankg@13f79535-47bb-0310-9956-ffa450edef68>2009-10-05 18:06:25 +0000
commitad5e6a4bbec9d613d1992e7ab6a24a5df1001a10 (patch)
tree4d519a2b8d1b69a22347606ae396e0759fc838a3 /shmem
parent8f94e7a627dc188d4e24c2c917142bb7133cfe6e (diff)
downloadlibapr-ad5e6a4bbec9d613d1992e7ab6a24a5df1001a10.tar.gz
Backport of r819897:
changed conditionals to avoid a couple of 'statement not reached' warnings with strict compilers. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/branches/1.4.x@821947 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'shmem')
-rw-r--r--shmem/unix/shm.c55
1 files changed, 23 insertions, 32 deletions
diff --git a/shmem/unix/shm.c b/shmem/unix/shm.c
index 14bb34491..e123ab510 100644
--- a/shmem/unix/shm.c
+++ b/shmem/unix/shm.c
@@ -32,8 +32,7 @@ static apr_status_t shm_cleanup_owner(void *m_)
return errno;
}
return APR_SUCCESS;
-#endif
-#if APR_USE_SHMEM_SHMGET_ANON
+#elif APR_USE_SHMEM_SHMGET_ANON
if (shmdt(m->base) == -1) {
return errno;
}
@@ -55,8 +54,7 @@ static apr_status_t shm_cleanup_owner(void *m_)
else {
return apr_file_remove(m->filename, m->pool);
}
-#endif
-#if APR_USE_SHMEM_MMAP_SHM
+#elif APR_USE_SHMEM_MMAP_SHM
if (munmap(m->base, m->realsize) == -1) {
return errno;
}
@@ -64,8 +62,7 @@ static apr_status_t shm_cleanup_owner(void *m_)
return errno;
}
return APR_SUCCESS;
-#endif
-#if APR_USE_SHMEM_SHMGET
+#elif APR_USE_SHMEM_SHMGET
/* Indicate that the segment is to be destroyed as soon
* as all processes have detached. This also disallows any
* new attachments to the segment. */
@@ -81,10 +78,10 @@ static apr_status_t shm_cleanup_owner(void *m_)
else {
return apr_file_remove(m->filename, m->pool);
}
+#else
+ return APR_ENOTIMPL;
#endif
}
-
- return APR_ENOTIMPL;
}
APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m,
@@ -172,9 +169,7 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m,
return APR_SUCCESS;
#endif /* APR_USE_SHMEM_MMAP_ZERO */
-#endif /* APR_USE_SHMEM_MMAP_ZERO || APR_USE_SHMEM_MMAP_ANON */
-#if APR_USE_SHMEM_SHMGET_ANON
-
+#elif APR_USE_SHMEM_SHMGET_ANON
new_m = apr_palloc(pool, sizeof(apr_shm_t));
new_m->pool = pool;
new_m->reqsize = reqsize;
@@ -213,9 +208,10 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m,
apr_pool_cleanup_null);
*m = new_m;
return APR_SUCCESS;
-#endif /* APR_USE_SHMEM_SHMGET_ANON */
+#else
/* It is an error if they want anonymous memory but we don't have it. */
return APR_ENOTIMPL; /* requested anonymous but we don't have it */
+#endif
}
/* Name-based shared memory */
@@ -303,9 +299,7 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m,
*m = new_m;
return APR_SUCCESS;
-#endif /* APR_USE_SHMEM_MMAP_TMP || APR_USE_SHMEM_MMAP_SHM */
-
-#if APR_USE_SHMEM_SHMGET
+#elif APR_USE_SHMEM_SHMGET
new_m->realsize = reqsize;
/* FIXME: APR_OS_DEFAULT is too permissive, switch to 600 I think. */
@@ -359,10 +353,10 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m,
*m = new_m;
return APR_SUCCESS;
-#endif /* APR_USE_SHMEM_SHMGET */
+#else
+ return APR_ENOTIMPL;
+#endif
}
-
- return APR_ENOTIMPL;
}
APR_DECLARE(apr_status_t) apr_shm_remove(const char *filename,
@@ -377,14 +371,12 @@ APR_DECLARE(apr_status_t) apr_shm_remove(const char *filename,
#if APR_USE_SHMEM_MMAP_TMP
return apr_file_remove(filename, pool);
-#endif
-#if APR_USE_SHMEM_MMAP_SHM
+#elif APR_USE_SHMEM_MMAP_SHM
if (shm_unlink(filename) == -1) {
return errno;
}
return APR_SUCCESS;
-#endif
-#if APR_USE_SHMEM_SHMGET
+#elif APR_USE_SHMEM_SHMGET
/* Presume that the file already exists; just open for writing */
status = apr_file_open(&file, filename, APR_WRITE,
APR_OS_DEFAULT, pool);
@@ -418,10 +410,11 @@ shm_remove_failed:
/* ensure the file has been removed anyway. */
apr_file_remove(filename, pool);
return status;
-#endif
+#else
/* No support for anonymous shm */
return APR_ENOTIMPL;
+#endif
}
APR_DECLARE(apr_status_t) apr_shm_destroy(apr_shm_t *m)
@@ -443,16 +436,15 @@ static apr_status_t shm_cleanup_attach(void *m_)
return errno;
}
return APR_SUCCESS;
-#endif /* APR_USE_SHMEM_MMAP_TMP || APR_USE_SHMEM_MMAP_SHM */
-#if APR_USE_SHMEM_SHMGET
+#elif APR_USE_SHMEM_SHMGET
if (shmdt(m->base) == -1) {
return errno;
}
return APR_SUCCESS;
+#else
+ return APR_ENOTIMPL;
#endif
}
-
- return APR_ENOTIMPL;
}
APR_DECLARE(apr_status_t) apr_shm_attach(apr_shm_t **m,
@@ -520,8 +512,7 @@ APR_DECLARE(apr_status_t) apr_shm_attach(apr_shm_t **m,
*m = new_m;
return APR_SUCCESS;
-#endif /* APR_USE_SHMEM_MMAP_TMP || APR_USE_SHMEM_MMAP_SHM */
-#if APR_USE_SHMEM_SHMGET
+#elif APR_USE_SHMEM_SHMGET
apr_shm_t *new_m;
apr_status_t status;
apr_file_t *file; /* file where metadata is stored */
@@ -567,10 +558,10 @@ APR_DECLARE(apr_status_t) apr_shm_attach(apr_shm_t **m,
*m = new_m;
return APR_SUCCESS;
-#endif /* APR_USE_SHMEM_SHMGET */
+#else
+ return APR_ENOTIMPL;
+#endif
}
-
- return APR_ENOTIMPL;
}
APR_DECLARE(apr_status_t) apr_shm_detach(apr_shm_t *m)