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