Hi,

I have attached a patch that even allows more MPM
internal information to be asked by others modules
using 

My reason to add this patch would be that management
module can learn even more information of the MPM.


Harrie
-- 
phone: +39-3474932300
http://www.lisanza.net/
diff -ru ../httpd-2.0-orig/include/ap_mpm.h ./include/ap_mpm.h
--- ../httpd-2.0-orig/include/ap_mpm.h  Thu Apr 19 13:36:42 2001
+++ ./include/ap_mpm.h  Thu Apr 19 13:45:28 2001
@@ -158,12 +158,18 @@
                                       /* an MPM is using a dynamic #  */
                                       /* threads or daemons.          */
 
-#define AP_MPMQ_MAX_DAEMONS        1  /* Max # of daemons     */
-#define AP_MPMQ_IS_THREADED        2  /* MPM can do threading */
-#define AP_MPMQ_IS_FORKED          3  /* MPM can do forking   */
-#define AP_MPMQ_HARD_LIMIT_DAEMONS 4  /* The compiled max # deamons   */
-#define AP_MPMQ_HARD_LIMIT_THREADS 5  /* The compiled max # threads   */
-#define AP_MPMQ_MAX_THREADS        6  /* Max # of threads             */
+#define AP_MPMQ_MAX_DAEMONS           1  /* Max # of daemons             */
+#define AP_MPMQ_IS_THREADED           2  /* MPM can do threading         */
+#define AP_MPMQ_IS_FORKED             3  /* MPM can do forking           */
+#define AP_MPMQ_HARD_LIMIT_DAEMONS    4  /* The compiled max # deamons   */
+#define AP_MPMQ_HARD_LIMIT_THREADS    5  /* The compiled max # threads   */
+#define AP_MPMQ_MAX_THREADS           6  /* Max # of threads             */
+#define AP_MPMQ_MIN_SPARE_DEAMONS     7  /* Min # of spare daemons       */
+#define AP_MPMQ_MIN_SPARE_THREADS     8  /* Min # of spare threads       */
+#define AP_MPMQ_MAX_SPARE_DAEMONS     9  /* Max # of spare daemons       */
+#define AP_MPMQ_MAX_SPARE_THREADS    10  /* Max # of spare threads       */
+#define AP_MPMQ_MAX_REQUESTS_DEAMON  11  /* Max # of requests per daemon */
+
 
 /**
  * Query a property of the current MPM.  
diff -ru ../httpd-2.0-orig/server/mpm/beos/beos.c ./server/mpm/beos/beos.c
--- ../httpd-2.0-orig/server/mpm/beos/beos.c    Thu Apr 19 13:33:46 2001
+++ ./server/mpm/beos/beos.c    Thu Apr 19 13:48:31 2001
@@ -671,6 +671,21 @@
         case AP_MPMQ_MAX_THREADS:
             *result = ap_threads_per_child;
             return APR_SUCCESS;
+        case AP_MPMQ_MIN_SPARE_DEAMONS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MIN_SPARE_THREADS:    
+            *result = max_spare_threads;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_SPARE_DAEMONS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_SPARE_THREADS:
+            *result = min_spare_threads;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_REQUESTS_DEAMON:
+            *result = ap_max_requests_per_child;
+            return APR_SUCCESS;
     }
     return APR_ENOTIMPL;
 }
diff -ru ../httpd-2.0-orig/server/mpm/perchild/perchild.c 
./server/mpm/perchild/perchild.c
--- ../httpd-2.0-orig/server/mpm/perchild/perchild.c    Thu Apr 19 13:33:50 2001
+++ ./server/mpm/perchild/perchild.c    Thu Apr 19 13:50:32 2001
@@ -236,6 +236,21 @@
         case AP_MPMQ_MAX_THREADS:
             *result = max_threads;
             return APR_SUCCESS;
+        case AP_MPMQ_MIN_SPARE_DEAMONS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MIN_SPARE_THREADS:    
+            *result = min_spare_threads;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_SPARE_DAEMONS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_SPARE_THREADS:
+            *result = max_spare_threads;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_REQUESTS_DEAMON:
+            *result = max_requests_per_child;
+            return APR_SUCCESS; 
     }
     return APR_ENOTIMPL;
 }
diff -ru ../httpd-2.0-orig/server/mpm/prefork/prefork.c ./server/mpm/prefork/prefork.c
--- ../httpd-2.0-orig/server/mpm/prefork/prefork.c      Thu Apr 19 13:33:49 2001
+++ ./server/mpm/prefork/prefork.c      Thu Apr 19 13:46:25 2001
@@ -324,6 +324,21 @@
         case AP_MPMQ_MAX_THREADS:
             *result = 0;
             return APR_SUCCESS;
+        case AP_MPMQ_MIN_SPARE_DEAMONS:
+            *result = ap_daemons_min_free;
+            return APR_SUCCESS;
+        case AP_MPMQ_MIN_SPARE_THREADS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_SPARE_DAEMONS:
+            *result = ap_daemons_max_free;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_SPARE_THREADS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_REQUESTS_DEAMON:
+            *result = ap_max_requests_per_child;
+            return APR_SUCCESS;
     }
     return APR_ENOTIMPL;
 }
diff -ru ../httpd-2.0-orig/server/mpm/spmt_os2/spmt_os2.c 
./server/mpm/spmt_os2/spmt_os2.c
--- ../httpd-2.0-orig/server/mpm/spmt_os2/spmt_os2.c    Thu Apr 19 13:33:46 2001
+++ ./server/mpm/spmt_os2/spmt_os2.c    Thu Apr 19 13:53:31 2001
@@ -899,6 +899,21 @@
         case AP_MPMQ_MAX_THREADS:
             *result = ap_threads_per_child;
             return APR_SUCCESS;
+        case AP_MPMQ_MIN_SPARE_DEAMONS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MIN_SPARE_THREADS:    
+            *result = ap_daemons_min_free;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_SPARE_DAEMONS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_SPARE_THREADS:
+            *result = ap_daemons_max_free;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_REQUESTS_DEAMON:
+            *result = ap_max_requests_per_child;
+            return APR_SUCCESS; 
     }
     return APR_ENOTIMPL;
 } 
diff -ru ../httpd-2.0-orig/server/mpm/threaded/threaded.c 
./server/mpm/threaded/threaded.c
--- ../httpd-2.0-orig/server/mpm/threaded/threaded.c    Thu Apr 19 13:33:47 2001
+++ ./server/mpm/threaded/threaded.c    Thu Apr 19 13:55:32 2001
@@ -192,6 +192,21 @@
         case AP_MPMQ_MAX_THREADS:
             *result = ap_threads_per_child;
             return APR_SUCCESS;
+        case AP_MPMQ_MIN_SPARE_DEAMONS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MIN_SPARE_THREADS:    
+            *result = min_spare_threads;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_SPARE_DAEMONS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_SPARE_THREADS:
+            *result = max_spare_threads;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_REQUESTS_DEAMON:
+            *result = ap_max_requests_per_child;
+            return APR_SUCCESS;
     }
     return APR_ENOTIMPL;
 }
diff -ru ../httpd-2.0-orig/server/mpm/winnt/mpm_winnt.c ./server/mpm/winnt/mpm_winnt.c
--- ../httpd-2.0-orig/server/mpm/winnt/mpm_winnt.c      Thu Apr 19 13:33:47 2001
+++ ./server/mpm/winnt/mpm_winnt.c      Thu Apr 19 13:57:32 2001
@@ -1552,6 +1552,21 @@
         case AP_MPMQ_MAX_THREADS:
             *result = ap_threads_per_child;
             return APR_SUCCESS;
+        case AP_MPMQ_MIN_SPARE_DEAMONS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MIN_SPARE_THREADS:    
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_SPARE_DAEMONS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_SPARE_THREADS:
+            *result = 0;
+            return APR_SUCCESS;
+        case AP_MPMQ_MAX_REQUESTS_DEAMON:
+            *result = ap_max_requests_per_child;
+            return APR_SUCCESS;
     }
     return APR_ENOTIMPL;
 } 

Reply via email to