You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by bh...@hyperreal.org on 1999/10/07 16:32:09 UTC

cvs commit: apache-2.0/src/main http_main.c

bhyde       99/10/07 07:32:09

  Modified:    src/main http_main.c
  Log:
  Man!  This file vastly improved.  Thanks Dean!
  
  Use the abstraction API_EXPORT_NONSTD for exporting main (aka
  apache_main).  Use clear rather than destroy on ptemp as other
  'systolic' pools do.  That also fixing a leak of the first ptemp
  created.  Let the destroy of pglobal to all the cleanup.  Meanwhile,
  all exit paths should destroy pglobal so the cleanup/unwind gets run
  and this routine sets a bad example by having many exits that don't -
  another day.
  
  Revision  Changes    Path
  1.10      +4 -9      apache-2.0/src/main/http_main.c
  
  Index: http_main.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/main/http_main.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- http_main.c	1999/10/06 21:26:53	1.9
  +++ http_main.c	1999/10/07 14:32:06	1.10
  @@ -237,10 +237,9 @@
   extern char *optarg;
   
   #ifdef WIN32
  -__declspec(dllexport)
  -     int apache_main(int argc, char *argv[])
  +API_EXPORT_NONSTD(int) apache_main(int argc, char *argv[])
   #else
  -int main(int argc, char **argv)
  +API_EXPORT_NONSTD(int)        main(int argc, char *argv[])
   #endif
   {
       int c;
  @@ -339,21 +338,17 @@
   
       for (;;) {
   	ap_clear_pool(pconf);
  -	ap_create_context(&ptemp, pconf);
  +	ap_clear_pool(ptemp);
   	ap_server_root = def_server_root;
   	ap_run_pre_config(pconf, plog, ptemp);
   	server_conf = ap_read_config(pconf, ptemp, confname);
   	ap_clear_pool(plog);
   	ap_run_open_logs(pconf, plog, ptemp, server_conf);
   	ap_post_config_hook(pconf, plog, ptemp, server_conf);
  -	ap_destroy_pool(ptemp);
   
   	if (ap_mpm_run(pconf, plog, server_conf)) break;
       }
  -
  -    ap_clear_pool(pconf);
  -    ap_clear_pool(plog);
  -    ap_destroy_pool(pglobal);
  +    ap_destroy_pool(pglobal); /* and destroy all descendent pools */
       exit(0);
   }