Author: gozer
Date: Wed Dec 22 16:46:39 2004
New Revision: 123158

URL: http://svn.apache.org/viewcvs?view=rev&rev=123158
Log:
Simplified the implementation of PerlPostConfigRequire. Stashing
the Perl interpreter was a waste of time, when it's always available
to us thru scfg->mip->parent->perl.


Modified:
   perl/modperl/trunk/src/modules/perl/mod_perl.c
   perl/modperl/trunk/src/modules/perl/modperl_cmd.c
   perl/modperl/trunk/src/modules/perl/modperl_config.c
   perl/modperl/trunk/src/modules/perl/modperl_config.h
   perl/modperl/trunk/src/modules/perl/modperl_types.h

Modified: perl/modperl/trunk/src/modules/perl/mod_perl.c
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/mod_perl.c?view=diff&rev=123158&p1=perl/modperl/trunk/src/modules/perl/mod_perl.c&r1=123157&p2=perl/modperl/trunk/src/modules/perl/mod_perl.c&r2=123158
==============================================================================
--- perl/modperl/trunk/src/modules/perl/mod_perl.c      (original)
+++ perl/modperl/trunk/src/modules/perl/mod_perl.c      Wed Dec 22 16:46:39 2004
@@ -327,10 +327,6 @@
         exit(1);
     }
 
-    if (!modperl_config_prepare_PerlPostConfigRequire(s, scfg, perl, p)) {
-        exit(1);   
-    }
-
 #ifndef USE_ITHREADS
     cdata = modperl_cleanup_data_new(server_pool, (void*)perl);
     apr_pool_cleanup_register(server_pool, cdata,
@@ -416,10 +412,6 @@
         }
 
         if (!modperl_config_apply_PerlModule(s, scfg, perl, p)) {
-            return HTTP_INTERNAL_SERVER_ERROR;
-        }
-
-        if (!modperl_config_prepare_PerlPostConfigRequire(s, scfg, perl, p)) {
             return HTTP_INTERNAL_SERVER_ERROR;
         }
     }

Modified: perl/modperl/trunk/src/modules/perl/modperl_cmd.c
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_cmd.c?view=diff&rev=123158&p1=perl/modperl/trunk/src/modules/perl/modperl_cmd.c&r1=123157&p2=perl/modperl/trunk/src/modules/perl/modperl_cmd.c&r2=123158
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_cmd.c   (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_cmd.c   Wed Dec 22 16:46:39 2004
@@ -249,18 +249,10 @@
 
     if (APR_SUCCESS == apr_stat(&finfo, arg, APR_FINFO_TYPE, p)) {
         if (finfo.filetype != APR_NOFILE) {
-             modperl_require_file_t *require = apr_pcalloc(p, 
sizeof(*require));
-#ifdef USE_ITHREADS
-            if (modperl_is_running()) {
-                require->perl = scfg->mip->parent->perl;
-            }
-#endif
-            require->file = arg;
-
             MP_TRACE_d(MP_FUNC, "push PerlPostConfigRequire for %s\n", arg);
 
-            *(modperl_require_file_t **)
-                apr_array_push(scfg->PerlPostConfigRequire) = require;
+            *(const char **)
+                apr_array_push(scfg->PerlPostConfigRequire) = arg;
         }
     }
     else {

Modified: perl/modperl/trunk/src/modules/perl/modperl_config.c
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_config.c?view=diff&rev=123158&p1=perl/modperl/trunk/src/modules/perl/modperl_config.c&r1=123157&p2=perl/modperl/trunk/src/modules/perl/modperl_config.c&r2=123158
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_config.c        (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_config.c        Wed Dec 22 
16:46:39 2004
@@ -155,8 +155,7 @@
 
     scfg->PerlModule  = apr_array_make(p, 2, sizeof(char *));
     scfg->PerlRequire = apr_array_make(p, 2, sizeof(char *));
-    scfg->PerlPostConfigRequire =
-        apr_array_make(p, 1, sizeof(modperl_require_file_t *));
+    scfg->PerlPostConfigRequire = apr_array_make(p, 1, sizeof(char *));
 
     scfg->argv = apr_array_make(p, 2, sizeof(char *));
 
@@ -444,57 +443,32 @@
                                                modperl_config_srv_t *scfg,
                                                apr_pool_t *p)
 {
-    modperl_require_file_t **requires;
+    char **requires;
     int i;
     MP_PERL_CONTEXT_DECLARE;
 
-    MP_PERL_CONTEXT_STORE;
-    
-    requires = (modperl_require_file_t **)scfg->PerlPostConfigRequire->elts;
+    requires = (char **)scfg->PerlPostConfigRequire->elts;
     for (i = 0; i < scfg->PerlPostConfigRequire->nelts; i++){
-#ifdef USE_ITHREADS
-        aTHX = requires[i]->perl;
-#endif
-        if (modperl_require_file(aTHX_ requires[i]->file, TRUE)){
+        int retval;
+
+        MP_PERL_CONTEXT_STORE_OVERRIDE(scfg->mip->parent->perl);
+        retval = modperl_require_file(aTHX_ requires[i], TRUE);
+        MP_PERL_CONTEXT_RESTORE;
+
+        if (retval) {
             MP_TRACE_d(MP_FUNC, "loaded Perl file: %s for server %s\n",
-                       requires[i]->file, modperl_server_desc(s, p));
+                       requires[i], modperl_server_desc(s, p));
         }
         else {
             ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
                          "Can't load Perl file: %s for server %s, exiting...",
-                         requires[i]->file, modperl_server_desc(s, p));
-            MP_PERL_CONTEXT_RESTORE;
+                         requires[i], modperl_server_desc(s, p));
+            
             return FALSE;
         }
     }
-    MP_PERL_CONTEXT_RESTORE;
 
     return TRUE;
-}
-
-/* In the case where files were added when interpreters were not yet started,
- * we need to go over the existing files and assign them the correct 
interpreter
- */
-int modperl_config_prepare_PerlPostConfigRequire(server_rec *s,
-                                                 modperl_config_srv_t *scfg,
-                                                 PerlInterpreter *perl,
-                                                 apr_pool_t *p)
-{
-#ifdef USE_ITHREADS
-    modperl_require_file_t **requires;
-    int i;
-
-    requires = (modperl_require_file_t **)scfg->PerlPostConfigRequire->elts;
-    for (i = 0; i < scfg->PerlPostConfigRequire->nelts; i++) {
-        if (!requires[i]->perl) {
-            MP_TRACE_d(MP_FUNC, "Late binding of %s to an interpreter",
-                   requires[i]->file);
-            requires[i]->perl = perl;
-        }
-    }
-#endif
-
-    return 1;
 }
 
 typedef struct {

Modified: perl/modperl/trunk/src/modules/perl/modperl_config.h
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_config.h?view=diff&rev=123158&p1=perl/modperl/trunk/src/modules/perl/modperl_config.h&r1=123157&p2=perl/modperl/trunk/src/modules/perl/modperl_config.h&r2=123158
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_config.h        (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_config.h        Wed Dec 22 
16:46:39 2004
@@ -122,11 +122,6 @@
                                      modperl_config_srv_t *scfg,
                                      PerlInterpreter *perl, apr_pool_t *p);
 
-int modperl_config_prepare_PerlPostConfigRequire(server_rec *s,
-                                                 modperl_config_srv_t *scfg,
-                                                 PerlInterpreter *perl,
-                                                 apr_pool_t *p);
-
 int modperl_config_apply_PerlPostConfigRequire(server_rec *s,
                                                modperl_config_srv_t *scfg,
                                                apr_pool_t *p);

Modified: perl/modperl/trunk/src/modules/perl/modperl_types.h
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_types.h?view=diff&rev=123158&p1=perl/modperl/trunk/src/modules/perl/modperl_types.h&r1=123157&p2=perl/modperl/trunk/src/modules/perl/modperl_types.h&r2=123158
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_types.h (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_types.h Wed Dec 22 16:46:39 2004
@@ -39,13 +39,6 @@
     server_rec  *s;
 } modperl_rcs_t;
 
-typedef struct {
-    const char *file;
-#ifdef USE_ITHREADS
-    PerlInterpreter *perl;
-#endif
-} modperl_require_file_t;
-
 #ifdef USE_ITHREADS
 
 typedef struct modperl_list_t modperl_list_t;

Reply via email to