You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2008/12/30 18:07:26 UTC
svn commit: r730180 - in /httpd/httpd/trunk/modules/mem: config5.m4
mod_plainmem.c mod_sharedmem.c mod_slotmem.c mod_slotmem.h providers/
providers/Makefile.in providers/config6.m4 providers/mod_plainmem.c
providers/mod_sharedmem.c slotmem.h
Author: jim
Date: Tue Dec 30 09:07:25 2008
New Revision: 730180
URL: http://svn.apache.org/viewvc?rev=730180&view=rev
Log:
Start of further refactoring....
Added:
httpd/httpd/trunk/modules/mem/mod_slotmem.c (with props)
httpd/httpd/trunk/modules/mem/mod_slotmem.h (props changed)
- copied unchanged from r730179, httpd/httpd/trunk/modules/mem/slotmem.h
httpd/httpd/trunk/modules/mem/providers/
httpd/httpd/trunk/modules/mem/providers/Makefile.in (with props)
httpd/httpd/trunk/modules/mem/providers/config6.m4 (with props)
httpd/httpd/trunk/modules/mem/providers/mod_plainmem.c (props changed)
- copied unchanged from r730179, httpd/httpd/trunk/modules/mem/mod_plainmem.c
httpd/httpd/trunk/modules/mem/providers/mod_sharedmem.c (props changed)
- copied unchanged from r730179, httpd/httpd/trunk/modules/mem/mod_sharedmem.c
Removed:
httpd/httpd/trunk/modules/mem/mod_plainmem.c
httpd/httpd/trunk/modules/mem/mod_sharedmem.c
httpd/httpd/trunk/modules/mem/slotmem.h
Modified:
httpd/httpd/trunk/modules/mem/config5.m4
Modified: httpd/httpd/trunk/modules/mem/config5.m4
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mem/config5.m4?rev=730180&r1=730179&r2=730180&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/mem/config5.m4 (original)
+++ httpd/httpd/trunk/modules/mem/config5.m4 Tue Dec 30 09:07:25 2008
@@ -3,12 +3,19 @@
dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config]]]])
APACHE_MODPATH_INIT(mem)
+if test "$enable_slotmem" = "shared"; then
+ slotmem_mods_enable=shared
+elif test "$enable_slotmem" = "yes"; then
+ slotmem_mods_enable=yes
+else
+ slotmem_mods_enable=no
+fi
-sharedmem_objs="mod_sharedmem.lo"
-APACHE_MODULE(sharedmem, memslot provider that uses shared memory, $sharedmem_objs, , most)
-APACHE_MODULE(plainmem, memslot provider that uses plain memory, , , no)
+slotmem_objs="mod_slotmem.lo"
-# Ensure that other modules can pick up slotmem.h
+APACHE_MODULE(slotmem, slot-based memory API using providers, $slotmem_objs, , most)
+
+# Ensure that other modules can pick up mod_slotmem.h
APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
APACHE_MODPATH_FINISH
Added: httpd/httpd/trunk/modules/mem/mod_slotmem.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mem/mod_slotmem.c?rev=730180&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/mem/mod_slotmem.c (added)
+++ httpd/httpd/trunk/modules/mem/mod_slotmem.c Tue Dec 30 09:07:25 2008
@@ -0,0 +1,79 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Memory handler for a plain memory divided in slot.
+ * This one uses plain memory.
+ */
+
+#include "mod_slotmem.h"
+
+AP_DECLARE(ap_slotmem_storage_method *) ap_slotmem_method(const char *provider)
+{
+ return (ap_lookup_provider(SLOTMEM_STORAGE, provider, "0"));
+}
+
+AP_DECLARE(apr_status_t) ap_slotmem_do(ap_slotmem_storage_method *sm,
+ ap_slotmem_t *s,
+ ap_slotmem_callback_fn_t *func,
+ void *data, apr_pool_t *pool)
+{
+ return (sm->slotmem_do(s, func, data, pool));
+}
+
+AP_DECLARE(apr_status_t) ap_slotmem_create(ap_slotmem_storage_method *sm,
+ ap_slotmem_t **new, const char *name,
+ apr_size_t item_size, int item_num,
+ apr_pool_t *pool)
+{
+ return (sm->slotmem_create(new, name, item_size, item_num, pool));
+}
+
+AP_DECLARE(apr_status_t) ap_slotmem_attach(ap_slotmem_storage_method *sm,
+ ap_slotmem_t **new, const char *name,
+ apr_size_t *item_size, int *item_num,
+ apr_pool_t *pool)
+{
+ return (sm->slotmem_attach(new, name, item_size, item_num, pool));
+}
+
+AP_DECLARE(apr_status_t) ap_slotmem_mem(ap_slotmem_storage_method *sm,
+ ap_slotmem_t *s, int item_id, void**mem)
+{
+ return (sm->slotmem_mem(s, item_id, mem));
+}
+
+AP_DECLARE(apr_status_t) ap_slotmem_lock(ap_slotmem_storage_method *sm,
+ ap_slotmem_t *s)
+{
+ return (sm->slotmem_lock(s));
+}
+
+AP_DECLARE(apr_status_t) ap_slotmem_unlock(ap_slotmem_storage_method *sm,
+ ap_slotmem_t *s)
+{
+ return (sm->slotmem_unlock(s));
+}
+
+
+module AP_MODULE_DECLARE_DATA slotmem_module = {
+ STANDARD20_MODULE_STUFF,
+ NULL, /* create per-directory config structure */
+ NULL, /* merge per-directory config structures */
+ NULL, /* create per-server config structure */
+ NULL, /* merge per-server config structures */
+ NULL, /* command apr_table_t */
+ NULL /* register hooks */
+};
Propchange: httpd/httpd/trunk/modules/mem/mod_slotmem.c
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpd/httpd/trunk/modules/mem/mod_slotmem.h
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpd/httpd/trunk/modules/mem/mod_slotmem.h
------------------------------------------------------------------------------
svn:mergeinfo =
Added: httpd/httpd/trunk/modules/mem/providers/Makefile.in
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mem/providers/Makefile.in?rev=730180&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/mem/providers/Makefile.in (added)
+++ httpd/httpd/trunk/modules/mem/providers/Makefile.in Tue Dec 30 09:07:25 2008
@@ -0,0 +1,3 @@
+# a modules Makefile has no explicit targets -- they will be defined by
+# whatever modules are enabled. just grab special.mk to deal with this.
+include $(top_srcdir)/build/special.mk
Propchange: httpd/httpd/trunk/modules/mem/providers/Makefile.in
------------------------------------------------------------------------------
svn:eol-style = native
Added: httpd/httpd/trunk/modules/mem/providers/config6.m4
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mem/providers/config6.m4?rev=730180&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/mem/providers/config6.m4 (added)
+++ httpd/httpd/trunk/modules/mem/providers/config6.m4 Tue Dec 30 09:07:25 2008
@@ -0,0 +1,14 @@
+dnl modules enabled in this directory by default
+
+dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config]]]])
+
+APACHE_MODPATH_INIT(mem/providers)
+
+sharedmem_objs="mod_sharedmem.lo"
+APACHE_MODULE(sharedmem, memslot provider that uses shared memory, $sharedmem_objs, , $slotmem_mods_enable)
+APACHE_MODULE(plainmem, memslot provider that uses plain memory, , , no)
+
+# Ensure that other modules can pick up slotmem.h
+APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
+
+APACHE_MODPATH_FINISH
Propchange: httpd/httpd/trunk/modules/mem/providers/config6.m4
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpd/httpd/trunk/modules/mem/providers/mod_plainmem.c
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpd/httpd/trunk/modules/mem/providers/mod_plainmem.c
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: httpd/httpd/trunk/modules/mem/providers/mod_sharedmem.c
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpd/httpd/trunk/modules/mem/providers/mod_sharedmem.c
------------------------------------------------------------------------------
svn:mergeinfo =
Re: svn commit: r730180 - in /httpd/httpd/trunk/modules/mem: config5.m4 mod_plainmem.c mod_sharedmem.c mod_slotmem.c mod_slotmem.h providers/ providers/Makefile.in providers/config6.m4 providers/mod_plainmem.c providers/mod_sharedmem.c slotmem.h
Posted by Jim Jagielski <ji...@jaguNET.com>.
On Dec 30, 2008, at 3:17 PM, Ruediger Pluem wrote:
>> +# Ensure that other modules can pick up slotmem.h
>> +APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
>
> Why do we add this? slotmem.h should be in one directory above and
> should be already added
> by the local config.m4 file.
>
cut/paste error :)
Re: svn commit: r730180 - in /httpd/httpd/trunk/modules/mem: config5.m4
mod_plainmem.c mod_sharedmem.c mod_slotmem.c mod_slotmem.h providers/ providers/Makefile.in
providers/config6.m4 providers/mod_plainmem.c providers/mod_sharedmem.c slotmem.h
Posted by Ruediger Pluem <rp...@apache.org>.
On 12/30/2008 06:07 PM, jim@apache.org wrote:
> Author: jim
> Date: Tue Dec 30 09:07:25 2008
> New Revision: 730180
>
> URL: http://svn.apache.org/viewvc?rev=730180&view=rev
> Log:
> Start of further refactoring....
>
> Added:
> httpd/httpd/trunk/modules/mem/mod_slotmem.c (with props)
> httpd/httpd/trunk/modules/mem/mod_slotmem.h (props changed)
> - copied unchanged from r730179, httpd/httpd/trunk/modules/mem/slotmem.h
> httpd/httpd/trunk/modules/mem/providers/
> httpd/httpd/trunk/modules/mem/providers/Makefile.in (with props)
> httpd/httpd/trunk/modules/mem/providers/config6.m4 (with props)
> httpd/httpd/trunk/modules/mem/providers/mod_plainmem.c (props changed)
> - copied unchanged from r730179, httpd/httpd/trunk/modules/mem/mod_plainmem.c
> httpd/httpd/trunk/modules/mem/providers/mod_sharedmem.c (props changed)
> - copied unchanged from r730179, httpd/httpd/trunk/modules/mem/mod_sharedmem.c
> Removed:
> httpd/httpd/trunk/modules/mem/mod_plainmem.c
> httpd/httpd/trunk/modules/mem/mod_sharedmem.c
> httpd/httpd/trunk/modules/mem/slotmem.h
> Modified:
> httpd/httpd/trunk/modules/mem/config5.m4
>
> Added: httpd/httpd/trunk/modules/mem/providers/config6.m4
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mem/providers/config6.m4?rev=730180&view=auto
> ==============================================================================
> --- httpd/httpd/trunk/modules/mem/providers/config6.m4 (added)
> +++ httpd/httpd/trunk/modules/mem/providers/config6.m4 Tue Dec 30 09:07:25 2008
> @@ -0,0 +1,14 @@
> +dnl modules enabled in this directory by default
> +
> +dnl APACHE_MODULE(name, helptext[, objects[, structname[, default[, config]]]])
> +
> +APACHE_MODPATH_INIT(mem/providers)
> +
> +sharedmem_objs="mod_sharedmem.lo"
> +APACHE_MODULE(sharedmem, memslot provider that uses shared memory, $sharedmem_objs, , $slotmem_mods_enable)
> +APACHE_MODULE(plainmem, memslot provider that uses plain memory, , , no)
> +
> +# Ensure that other modules can pick up slotmem.h
> +APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
Why do we add this? slotmem.h should be in one directory above and should be already added
by the local config.m4 file.
Regards
RĂ¼diger