dougm 00/04/17 00:10:56
Modified: lib/ModPerl Code.pm
src/modules/perl mod_perl.c mod_perl.h modperl_interp.c
modperl_types.h
Log:
integrate with modperl_gtop
Revision Changes Path
1.10 +2 -2 modperl-2.0/lib/ModPerl/Code.pm
Index: Code.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/lib/ModPerl/Code.pm,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- Code.pm 2000/04/17 00:07:40 1.9
+++ Code.pm 2000/04/17 07:10:55 1.10
@@ -185,7 +185,7 @@
}
}
-my @trace = qw(d s h g c i);
+my @trace = qw(d s h g c i m);
sub generate_trace {
my($self, $h_fh) = @_;
@@ -277,7 +277,7 @@
generate_trace => {h => 'modperl_trace.h'},
);
-my @c_src_names = qw(interp log config);
+my @c_src_names = qw(interp log config gtop);
my @g_c_names = map { "modperl_$_" } qw(hooks directives);
my @c_names = ('mod_perl', (map "modperl_$_", @c_src_names), @g_c_names);
sub c_files { [map { "$_.c" } @c_names] }
1.7 +14 -0 modperl-2.0/src/modules/perl/mod_perl.c
Index: mod_perl.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- mod_perl.c 2000/04/16 01:33:56 1.6
+++ mod_perl.c 2000/04/17 07:10:55 1.7
@@ -7,6 +7,14 @@
char *argv[] = { "httpd", "/dev/null" };
int argc = 2;
+#ifdef MP_USE_GTOP
+ MP_dSCFG(s);
+ MP_TRACE_m_do(
+ scfg->gtop = modperl_gtop_new(p);
+ modperl_gtop_do_proc_mem_before(MP_FUNC ": perl_parse");
+ );
+#endif
+
if (!(perl = perl_alloc())) {
perror("perl_alloc");
exit(1);
@@ -22,6 +30,12 @@
}
perl_run(perl);
+
+#ifdef MP_USE_GTOP
+ MP_TRACE_m_do(
+ modperl_gtop_do_proc_mem_after(MP_FUNC ": perl_parse");
+ );
+#endif
modperl_interp_init(s, p, perl);
}
1.7 +3 -0 modperl-2.0/src/modules/perl/mod_perl.h
Index: mod_perl.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- mod_perl.h 2000/04/16 16:57:55 1.6
+++ mod_perl.h 2000/04/17 07:10:55 1.7
@@ -26,6 +26,9 @@
#include "modperl_flags.h"
#include "modperl_hooks.h"
+#ifdef MP_USE_GTOP
+#include "modperl_gtop.h"
+#endif
#include "modperl_types.h"
#include "modperl_config.h"
#include "modperl_callback.h"
1.7 +15 -3 modperl-2.0/src/modules/perl/modperl_interp.c
Index: modperl_interp.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_interp.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- modperl_interp.c 2000/04/16 01:33:56 1.6
+++ modperl_interp.c 2000/04/17 07:10:55 1.7
@@ -14,13 +14,24 @@
modperl_interp_t *interp =
(modperl_interp_t *)ap_pcalloc(p, sizeof(*interp));
- if (mip) {
- interp->mip = mip;
- }
+ interp->mip = mip;
if (perl) {
+#ifdef MP_USE_GTOP
+ MP_dSCFG(mip->server);
+ MP_TRACE_m_do(
+ modperl_gtop_do_proc_mem_before(MP_FUNC ": perl_clone");
+ );
+#endif
+
interp->perl = perl_clone(perl, TRUE);
MpInterpCLONED_On(interp);
+
+#ifdef MP_USE_GTOP
+ MP_TRACE_m_do(
+ modperl_gtop_do_proc_mem_after(MP_FUNC ": perl_clone");
+ );
+#endif
}
MP_TRACE_i(MP_FUNC, "0x%lx\n", (unsigned long)interp);
@@ -213,6 +224,7 @@
int i;
mip->ap_pool = p;
+ mip->server = s;
mip->cfg = scfg->interp_pool_cfg;
mip->parent = modperl_interp_new(p, mip, NULL);
aTHX = mip->parent->perl = perl;
1.6 +4 -0 modperl-2.0/src/modules/perl/modperl_types.h
Index: modperl_types.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_types.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- modperl_types.h 2000/04/16 01:33:56 1.5
+++ modperl_types.h 2000/04/17 07:10:55 1.6
@@ -44,6 +44,7 @@
struct modperl_interp_pool_t {
ap_pool_t *ap_pool;
+ server_rec *server;
perl_mutex mip_lock;
perl_cond available;
modperl_interp_pool_config_t *cfg;
@@ -79,6 +80,9 @@
modperl_interp_pool_config_t *interp_pool_cfg;
#else
PerlInterpreter *perl;
+#endif
+#ifdef MP_USE_GTOP
+ modperl_gtop_t *gtop;
#endif
int flags;
} modperl_srv_config_t;