manoj       99/04/16 21:25:57

  Modified:    pthreads/src/include http_accept.h
               pthreads/src/main http_accept.c http_main.c
  Log:
  An attempt to put SINGLE_LISTEN_UNSERIALIZED_ACCEPT support back in.
  This also moves the SAFE_ACCEPT definition from http_accept.h to
  http_accept.c since it isn't (and shouldn't be) used in other files
  anymore.
  
  Revision  Changes    Path
  1.6       +0 -2      apache-apr/pthreads/src/include/http_accept.h
  
  Index: http_accept.h
  ===================================================================
  RCS file: /home/cvs/apache-apr/pthreads/src/include/http_accept.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -u -r1.5 -r1.6
  --- http_accept.h     1999/04/17 03:35:53     1.5
  +++ http_accept.h     1999/04/17 04:25:55     1.6
  @@ -65,8 +65,6 @@
   #include "httpd.h" 
   #include "ap_config.h"
   
  -#define SAFE_ACCEPT(stmt) do {stmt;} while(0)
  -
   /* The info each server thread needs to start correctly.
    */
   typedef struct {
  
  
  
  1.9       +16 -0     apache-apr/pthreads/src/main/http_accept.c
  
  Index: http_accept.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/pthreads/src/main/http_accept.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -u -r1.8 -r1.9
  --- http_accept.c     1999/04/17 01:58:58     1.8
  +++ http_accept.c     1999/04/17 04:25:56     1.9
  @@ -72,6 +72,15 @@
   static int num_listenfds;
   
   #if defined (USE_ACCEPT_QUEUE)
  +
  +#ifdef SINGLE_LISTEN_UNSERIALIZED_ACCEPT
  +/* Each thread only listens to one socket in this model, so the starvation
  + * problem described in manual/misc/perf-tuning.html can't occur here */
  +#define SAFE_ACCEPT(stmt) 
  +#else
  +#define SAFE_ACCEPT(stmt) do {stmt;} while(0)
  +#endif
  +
   /* The queue of sockets we've accepted */
   static FDQueue csd_queue;
   
  @@ -311,6 +320,13 @@
   }
   
   #elif defined(USE_MULTI_ACCEPT)
  +
  +#ifdef SINGLE_LISTEN_UNSERIALIZED_ACCEPT
  +#define SAFE_ACCEPT(stmt) do {if(ap_listeners->next != NULL) {stmt;}} 
while(0)
  +#else
  +#define SAFE_ACCEPT(stmt) do {stmt;} while(0)
  +#endif
  +
   /*
    * USE_MULTI_ACCEPT
    * Worker threads do the accept and process the request. 
  
  
  
  1.73      +0 -7      apache-apr/pthreads/src/main/http_main.c
  
  Index: http_main.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/pthreads/src/main/http_main.c,v
  retrieving revision 1.72
  retrieving revision 1.73
  diff -u -u -r1.72 -r1.73
  --- http_main.c       1999/04/15 20:01:40     1.72
  +++ http_main.c       1999/04/17 04:25:56     1.73
  @@ -416,13 +416,6 @@
       }
   }
   
  -/* On some architectures it's safe to do unserialized accept()s in the single
  - * Listen case.  But it's never safe to do it in the case where there's
  - * multiple Listen statements.  Define SINGLE_LISTEN_UNSERIALIZED_ACCEPT
  - * when it's safe in the single Listen case.  We haven't defined this yet
  - * for the hybrid server. ZZZ
  - */
  -
   static void usage(char *bin)
   {
       char pad[MAX_STRING_LEN];
  
  
  

Reply via email to