? out
? include/http_event.h
? main/http_event.c
? main/http_worker.c
Index: include/http_conf_globals.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/include/http_conf_globals.h,v
retrieving revision 1.8
diff -u -r1.8 http_conf_globals.h
--- http_conf_globals.h	1999/03/15 15:34:49	1.8
+++ http_conf_globals.h	1999/05/17 04:40:48
@@ -116,6 +116,8 @@
  */
 extern char ap_coredump_dir[MAX_STRING_LEN];
 
+server_rec *server_conf; /* XXX this is shared now, prefix with ap_ */
+
 #ifdef __cplusplus
 }
 #endif
Index: include/http_main.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/include/http_main.h,v
retrieving revision 1.5
diff -u -r1.5 http_main.h
--- http_main.h	1999/04/09 04:10:35	1.5
+++ http_main.h	1999/05/17 04:40:48
@@ -120,8 +120,8 @@
 int ap_get_timeout(request_rec *r);
 
 API_EXPORT(void) ap_child_terminate(request_rec *r);
-int ap_update_child_status(int child_num, int thread_num, int status, request_rec *r);
-void ap_time_process_request(int child_num, int thread_num, int status);
+int ap_update_child_status(conn_rec *, int status, request_rec *r);
+void ap_time_process_request(conn_rec *, int status);
 unsigned int ap_set_callback_and_alarm(void (*fn) (int), int x);
 API_EXPORT(int) ap_check_alarm(void);
 
Index: include/httpd.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/include/httpd.h,v
retrieving revision 1.14
diff -u -r1.14 httpd.h
--- httpd.h	1999/04/14 21:03:19	1.14
+++ httpd.h	1999/05/17 04:40:48
@@ -819,8 +819,6 @@
 
     /* Information about the connection itself */
 
-    int child_num;		/* The number of the child handling conn_rec */
-    int thread_num;             /* number of the thread handling conn_rec */
     BUFF *client;		/* Connection to the guy */
 
     /* Who is the client? */
@@ -1042,7 +1040,6 @@
 API_EXPORT(int) ap_can_exec(const struct stat *);
 API_EXPORT(void) ap_chdir_file(const char *file);
 API_EXPORT(int) ap_get_max_daemons(void);
-API_EXPORT(const server_rec *) ap_get_server_conf(void);
 
 #ifndef HAVE_CANONICAL_FILENAME
 /*
Index: include/scoreboard.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/include/scoreboard.h,v
retrieving revision 1.7
diff -u -r1.7 scoreboard.h
--- scoreboard.h	1999/04/09 04:10:35	1.7
+++ scoreboard.h	1999/05/17 04:40:48
@@ -209,8 +209,8 @@
 void increment_counts(int child_num, int thread_num, request_rec *r);
 void update_scoreboard_global(void);
 API_EXPORT(int) find_child_by_pid(int pid);
-int ap_update_child_status(int child_num, int thread_num, int status, request_rec *r);
-void ap_time_process_request(int child_num, int thread_num, int status);
+int ap_update_child_status(conn_rec *, int status, request_rec *r);
+void ap_time_process_request(conn_rec *, int status);
 
 
 
Index: main/Makefile.tmpl
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/Makefile.tmpl,v
retrieving revision 1.8
diff -u -r1.8 Makefile.tmpl
--- Makefile.tmpl	1999/04/17 03:35:54	1.8
+++ Makefile.tmpl	1999/05/17 04:40:48
@@ -11,7 +11,7 @@
       http_config.o http_core.o http_log.o \
       http_main.o http_protocol.o http_request.o http_vhost.o \
       util.o util_date.o util_script.o util_uri.o util_md5.o \
-      scoreboard.o rfc1413.o fdqueue.o acceptlock.o http_accept.o
+      scoreboard.o rfc1413.o http_event.o http_worker.o
 
 .c.o:
 	$(CC) -c $(INCLUDES) $(CFLAGS) $<
Index: main/http_core.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/http_core.c,v
retrieving revision 1.12
diff -u -r1.12 http_core.c
--- http_core.c	1999/04/14 21:03:28	1.12
+++ http_core.c	1999/05/17 04:40:50
@@ -595,7 +595,7 @@
 	&& conn->remote_host == NULL
 	&& (type == REMOTE_DOUBLE_REV
 	    || hostname_lookups != HOSTNAME_LOOKUP_OFF)) {
-	old_stat = ap_update_child_status(conn->child_num, conn->thread_num,
+	old_stat = ap_update_child_status(conn,
 					  SERVER_BUSY_DNS, (request_rec*)NULL);
 	/* ZZZ change to AP functions. */
 	iaddr = &(conn->remote_addr.sin_addr);
@@ -623,8 +623,7 @@
 	}
     }
     if (old_stat != SERVER_DEAD) {
-	(void)ap_update_child_status(conn->child_num, conn->thread_num,
-				     old_stat, (request_rec*)NULL);
+	(void)ap_update_child_status(conn, old_stat, (request_rec*)NULL);
     }
 
 /*
Index: main/http_main.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/http_main.c,v
retrieving revision 1.79
diff -u -r1.79 http_main.c
--- http_main.c	1999/04/29 20:09:44	1.79
+++ http_main.c	1999/05/17 04:40:52
@@ -93,9 +93,14 @@
 #include "util_uri.h" 
 #include "scoreboard.h" 
 
+#if 0
 #include "http_accept.h"
 #include <poll.h> 
 #include <netinet/tcp.h> 
+#endif
+
+#include "http_event.h"
+
 #include <stdio.h> 
 
 #ifdef USE_SHMGET_SCOREBOARD
@@ -246,7 +251,7 @@
 
 /* *Non*-shared http_main globals... */
 
-static server_rec *server_conf;
+server_rec *server_conf; /* XXX this is shared now */
 static pid_t pgrp;
 
 /* one_process --- debugging mode variable; can be set from the command line
@@ -346,11 +351,6 @@
     return max_daemons_limit;
 }
 
-API_EXPORT(const server_rec *) ap_get_server_conf(void)
-{
-    return (server_conf);
-}
-
 
 /*
  * This routine adds the real server base identity to the version string,
@@ -386,11 +386,13 @@
    static void clean_child_exit(int code) __attribute__ ((noreturn)); */
 void clean_child_exit(int code)
 {
+#if 0 /* XXX scoreboard */
     int child_num = find_child_by_pid(getpid());
     int i;
 
     for (i = 0; i < ap_threads_per_child + ap_acceptors_per_child; i++)
         ap_update_child_status(child_num, i, SERVER_DEAD, (request_rec *) NULL);
+#endif
 
     if (pchild) {
 	ap_child_exit_modules(pchild, server_conf);
@@ -402,7 +404,6 @@
 
 static void graceful_killer(void)
 {
-    stop_accepting_connections(pconf);
 }
 
 int ap_get_timeout(request_rec *r)
@@ -453,120 +454,6 @@
 #endif
     exit(1);
 }
-/*
- * More machine-dependent networking gooo... on some systems,
- * you've got to be *really* sure that all the packets are acknowledged
- * before closing the connection, since the client will not be able
- * to see the last response if their TCP buffer is flushed by a RST
- * packet from us, which is what the server's TCP stack will send
- * if it receives any request data after closing the connection.
- *
- * In an ideal world, this function would be accomplished by simply
- * setting the socket option SO_LINGER and handling it within the
- * server's TCP stack while the process continues on to the next request.
- * Unfortunately, it seems that most (if not all) operating systems
- * block the server process on close() when SO_LINGER is used.
- * For those that don't, see USE_SO_LINGER below.  For the rest,
- * we have created a home-brew lingering_close.
- *
- * Many operating systems tend to block, puke, or otherwise mishandle
- * calls to shutdown only half of the connection.  You should define
- * NO_LINGCLOSE in ap_config.h if such is the case for your system.
- */
-#ifndef MAX_SECS_TO_LINGER
-#define MAX_SECS_TO_LINGER 30
-#endif
-
-#ifdef USE_SO_LINGER
-#define NO_LINGCLOSE		/* The two lingering options are exclusive */
-
-static void sock_enable_linger(int s) // ZZZZZ abstract the socket, s
-{
-    struct linger li;                 // ZZZZZ SocketOptions...
-
-    li.l_onoff = 1;
-    li.l_linger = MAX_SECS_TO_LINGER;
-
-    if (setsockopt(s, SOL_SOCKET, SO_LINGER, // ZZZZZ abstract, return SUCCESS or not
-		   (char *) &li, sizeof(struct linger)) < 0) {
-	ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf,
-	            "setsockopt: (SO_LINGER)");
-	/* not a fatal error */
-    }
-}
-
-#else
-#define sock_enable_linger(s)	/* NOOP */
-#endif /* USE_SO_LINGER */
-
-#ifndef NO_LINGCLOSE
-
-/* Since many clients will abort a connection instead of closing it,
- * attempting to log an error message from this routine will only
- * confuse the webmaster.  There doesn't seem to be any portable way to
- * distinguish between a dropped connection and something that might be
- * worth logging.
- */
-/*ZZZ this routine needs to be adapted for use with poll()*/
-static void lingering_close(request_rec *r)     
-{
-  /*ZZZ remove the hardwired 512. This is an IO Buffer Size */
-    char dummybuf[512];    
-    struct pollfd pd;
-    int lsd;
-    int max_wait;
-
-    /* Prevent a slow-drip client from holding us here indefinitely */
-
-    max_wait = 30;
-    ap_bsetopt(r->connection->client, BO_TIMEOUT, &max_wait);
-
-    /* Send any leftover data to the client, but never try to again */
-
-    if (ap_bflush(r->connection->client) == -1) {
-	ap_bclose(r->connection->client);
-	return;
-    }
-    ap_bsetflag(r->connection->client, B_EOUT, 1);
-
-    /* Close our half of the connection --- send the client a FIN */
-
-    lsd = r->connection->client->fd;
-
-    if ((shutdown(lsd, 1) != 0)  /* ZZZ abstract shutdown */
-        || ap_is_aborted(r->connection)) {
-	ap_bclose(r->connection->client);
-	return;
-    }
-
-    /* Set up to wait for readable data on socket... */
-    pd.fd = lsd;
-    pd.events = POLLIN;
-
-    /* Wait for readable data or error condition on socket;
-     * slurp up any data that arrives...  We exit when we go for an
-     * interval of tv length without getting any more data, get an error
-     * from poll(), get an error or EOF on a read, or the timer expires.
-     */
-    /* We use a 2 second timeout because current (Feb 97) browsers
-     * fail to close a connection after the server closes it.  Thus,
-     * to avoid keeping the child busy, we are only lingering long enough
-     * for a client that is actively sending data on a connection.
-     * This should be sufficient unless the connection is massively
-     * losing packets, in which case we might have missed the RST anyway.
-     * These parameters are reset on each pass, since they might be
-     * changed by poll.
-     */
-    do {
-        pd.revents = 0;
-    } while ((poll(&pd, 1, 2) == 1)   
-             && read(lsd, dummybuf, sizeof(dummybuf)));
-      /* && (time() = epoch) < max_wait); */    /* ZZZZ time function is not good... */
-
-    /* Should now have seen final ack.  Safe to finally kill socket */
-    ap_bclose(r->connection->client);
-}
-#endif /* ndef NO_LINGCLOSE */
 
 /*****************************************************************
  * dealing with other children
@@ -1189,59 +1076,7 @@
 #endif
 }
 
-/*****************************************************************
- * Connection structures and accounting...
- */
-
-
-static conn_rec *new_connection(pool *p, server_rec *server, BUFF *inout,
-                                const struct sockaddr_in *remaddr,   /* ZZZ */
-                                const struct sockaddr_in *saddr,     /* ZZZ */
-			     int child_num, int thread_num)
-{
-    conn_rec *conn = (conn_rec *) ap_pcalloc(p, sizeof(conn_rec));
-
-    /* Got a connection structure, so initialize what fields we can
-     * (the rest are zeroed out by pcalloc).
-     */
-
-    conn->child_num = child_num;
-    conn->thread_num = thread_num;
 
-    conn->pool = p;
-    conn->local_addr = *saddr;
-    conn->server = server; /* just a guess for now */
-    ap_update_vhost_given_ip(conn);
-    conn->base_server = conn->server;
-    conn->client = inout;
-
-    conn->remote_addr = *remaddr;
-    conn->remote_ip = ap_pstrdup(conn->pool,
-			      inet_ntoa(conn->remote_addr.sin_addr));
-
-    return conn;
-}
-
-static void sock_disable_nagle(int s) /* ZZZ abstract */
-{
-    /* The Nagle algorithm says that we should delay sending partial
-     * packets in hopes of getting more data.  We don't want to do
-     * this; we are not telnet.  There are bad interactions between
-     * persistent connections and Nagle's algorithm that have very severe
-     * performance penalties.  (Failing to disable Nagle is not much of a
-     * problem with simple HTTP.)
-     *
-     * In spite of these problems, failure here is not a shooting offense.
-     */
-    int just_say_no = 1;
-
-    if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (char *) &just_say_no,
-		   sizeof(int)) < 0) {
-	ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf,
-		    "setsockopt: (TCP_NODELAY)");
-    }
-}
-
 static int make_sock(pool *p, const struct sockaddr_in *server) 
      /* abstract sockaddr_in */
 {
@@ -1311,9 +1146,6 @@
 #endif
 #endif
 
-    sock_disable_nagle(s);
-    sock_enable_linger(s);
-
     /*
      * To send data over high bandwidth-delay connections at full
      * speed we must force the TCP window to open wide enough to keep the
@@ -1649,119 +1481,7 @@
     ap_server_post_read_config = ap_make_array(pcommands, 1, sizeof(char *));
 }
 
-/*****************************************************************
- * Child process main loop.
- */
-
-static void process_socket(pool *p, struct sockaddr *sa_client, int csd, int my_child_num, int my_thread_num)
-{
-    struct sockaddr sa_server; /* ZZZZ */
-    size_t len = sizeof(struct sockaddr);
-    BUFF *conn_io;
-    request_rec *r;
-    conn_rec *current_conn;
-
-    ap_note_cleanups_for_fd(p, csd);
-
-    /* ZZZ change to AP func */
-    if (getsockname(csd, &sa_server, &len) < 0) { 
-	ap_log_error(APLOG_MARK, APLOG_ERR, server_conf, "getsockname");
-	return;
-    }
-    (void) ap_update_child_status(my_child_num, my_thread_num,  
-				  SERVER_BUSY_READ, (request_rec *) NULL);
-    conn_io = ap_bcreate(p, B_RDWR | B_SOCKET);
-    ap_bpushfd(conn_io, csd, csd);
-
-    current_conn = new_connection(p, server_conf, conn_io,
-                                  (const struct sockaddr_in *) sa_client, 
-                                  (const struct sockaddr_in *) &sa_server, 
-                                  my_child_num, my_thread_num);
-
-    /*
-     * Read and process each request found on our connection
-     * until no requests are left or we decide to close.
-     */
-
-
-    while ((r = ap_read_request(current_conn)) != NULL) {
-	(void) ap_update_child_status(my_child_num, my_thread_num,
-				      SERVER_BUSY_WRITE, r);
-	if (r->status == HTTP_OK)
-	    ap_process_request(r);
-	if (ap_extended_status)
-	    increment_counts(my_child_num, my_thread_num, r);
-	if (!current_conn->keepalive || ap_is_aborted(current_conn))
-	    break;
-	ap_destroy_pool(r->pool);
-	(void) ap_update_child_status(my_child_num, my_thread_num, 
-				      SERVER_BUSY_KEEPALIVE, 
-				      (request_rec *) NULL);
-#if 0
-	if (ap_scoreboard_image->global.exit_generation > t->generation) {
-	    ap_bclose(conn_io);
-	    fprintf((stderr,"%d child_main: generation maxed\n",my_child_num));
-	    clean_child_exit(0);
-	}
-#endif
-    }
-
-    /*
-     * Close the connection, being careful to send out whatever is still
-     * in our buffers.  If possible, try to avoid a hard close until the
-     * client has ACKed our FIN and/or has stopped sending us data.
-     */
-
-#ifdef NO_LINGCLOSE
-    ap_bclose(conn_io);	/* just close it */
-#else
-    if (r && r->connection
-	&& !ap_is_aborted(r->connection)
-	&& r->connection->client
-	&& (r->connection->client->fd >= 0)) {
 
-	lingering_close(r);
-    }
-    else {
-	ap_bsetflag(conn_io, B_EOUT, 1);
-	ap_bclose(conn_io);
-    }
-#endif
-}
-
-
-static void * worker_thread(void * dummy)
-{
-    proc_info * ti = dummy;
-    int process_slot = ti->pid;
-    int thread_slot = ti->tid;
-    pool *tpool = ti->tpool;
-    struct sockaddr sa_client;
-    int csd;
-    pool *ptrans;		/* Pool for per-transaction stuff */
-
-    free(ti);
-
-    ptrans = ap_make_sub_pool(tpool);
-
-    while (1) {
-        (void) ap_update_child_status(process_slot, thread_slot, SERVER_READY, 
-				  (request_rec *) NULL);
-        csd = get_connection(&sa_client);
-	if (csd < 0) {
-            break;
-        } 
-        process_socket(ptrans, &sa_client, csd, process_slot, thread_slot);
-	ap_clear_pool(ptrans);
-    }
-
-    ap_destroy_pool(tpool);
-    kill(ap_scoreboard_image->parent[process_slot].pid, SIGWINCH);
-    ap_update_child_status(process_slot, thread_slot, SERVER_DEAD,
-        (request_rec *) NULL);
-    return NULL;
-}
-
 /*****************************************************************
  * Here follows a long bunch of generic server bookkeeping stuff...
  */
@@ -1888,11 +1608,6 @@
 static void child_main(int child_num_arg)
 {
     sigset_t sig_mask;
-    int signal_received;
-    pthread_t thread;
-    int i, j;
-    int my_child_num = child_num_arg;
-    proc_info *my_info = NULL;
 
     my_pid = getpid();
     pchild = ap_make_sub_pool(pconf);
@@ -1900,8 +1615,6 @@
     /*stuff to do before we switch id's, so we have permissions.*/
     reopen_scoreboard(pchild);
 
-    accept_child_init(pchild, ap_threads_per_child);
-
     set_group_privs();
 
     if (!geteuid() && (setuid(ap_user_id) == -1)) {
@@ -1921,70 +1634,7 @@
         ap_log_error(APLOG_MARK, APLOG_ALERT, server_conf, "pthread_sigmask");
     }
 
-    /* Setup worker threads */
-    for (i=0; i < ap_threads_per_child; i++) {
-
-        my_info = NULL;
-	
-	my_info = (proc_info *)malloc(sizeof(proc_info));
-	my_info->pid = my_child_num;
-        my_info->tid = i;
-	my_info->sd = 0;
-	my_info->tpool = ap_make_sub_pool(pchild);
-	
-	/* We are creating threads right now */
-	(void) ap_update_child_status(my_child_num, i, SERVER_STARTING, 
-				      (request_rec *) NULL);
-	if (pthread_create(&thread, NULL, worker_thread, my_info)) {
-	    ap_log_error(APLOG_MARK, APLOG_ALERT, server_conf,
-			 "pthread_create: unable to create worker thread");
-	    /* 
-	     * We failed to create a thread.  Update the scoreboard,  
-	     * or it will say SERVER_STARTING forever.
-	     */
-	    (void) ap_update_child_status(my_child_num, i, SERVER_DEAD, 
-					  (request_rec *) NULL);
-	    exit(1);   /* We won't always exit here, but for no this is okay */
-	}
-
-	/* We let each thread update it's own scoreboard entry.  This is done
-	 * because it let's us deal with tid better.
-	 */
-    }
-
-    start_accepting_connections(my_child_num);
-
-    /* This thread will be the one responsible for handling signals */
-    sigemptyset(&sig_mask);
-    sigaddset(&sig_mask, SIGWINCH);
-    sigaddset(&sig_mask, SIGTERM);
-    sigaddset(&sig_mask, SIGINT);
-    sigwait(&sig_mask, &signal_received);
-    /* XXX - Do the appropriate thing for each signal */
-    switch (signal_received) {
-        case SIGWINCH:
-       	    graceful_sig_handler(SIGWINCH);
-  	    for (j = 0; j < ap_threads_per_child + ap_acceptors_per_child; 
-		 j++) { 
-                /* Useful for debugging */
-                if (ap_scoreboard_image->servers[child_num_arg][j].status != SERVER_DEAD) {
-                    ap_scoreboard_image->servers[child_num_arg][j].status = SERVER_GRACEFUL;
-                }
-	    } 
-            graceful_killer();
-            clean_child_exit(0);
-    	    break;
-        case SIGTERM:
-            just_die(SIGTERM);
-    	    break;
-        case SIGINT:
-            just_die(SIGINT);
-            break;
-        default:
-            ap_log_error(APLOG_MARK, APLOG_ALERT, server_conf,
-    	   "received strange signal: %d", signal_received);
-
-    }
+    ap_event_loop();
 }
 
 static int make_child(server_rec *s, int slot, time_t now) /* ZZZ */
@@ -2227,8 +1877,10 @@
         if (pid >= 0) {
             child_slot = find_child_by_pid(pid);
             if (child_slot >= 0) {
+#if 0 /* XXX scoreboard */
                 for (i = 0; i < ap_threads_per_child + ap_acceptors_per_child; i++)
                     ap_update_child_status(child_slot, i, SERVER_DEAD, (request_rec *) NULL);
+#endif
                 
 		if (remaining_children_to_start
 		    && child_slot < ap_daemons_limit) {
@@ -2296,7 +1948,6 @@
     ap_set_version();
     ap_init_modules(pconf, server_conf);
     version_locked++;
-    accept_parent_init(pconf, listener_count);
     if (!is_graceful) {
 	reinit_scoreboard(pconf);
     }
Index: main/http_request.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/http_request.c,v
retrieving revision 1.4
diff -u -r1.4 http_request.c
--- http_request.c	1999/03/17 17:01:21	1.4
+++ http_request.c	1999/05/17 04:40:53
@@ -1232,14 +1232,11 @@
     int old_stat;
 
     if (ap_extended_status)
-	ap_time_process_request(r->connection->child_num, 
-				r->connection->thread_num, START_PREQUEST);
+	ap_time_process_request(r->connection, START_PREQUEST);
 
     process_request_internal(r);
 
-    old_stat = ap_update_child_status(r->connection->child_num,
-				      r->connection->thread_num,
-                                   SERVER_BUSY_LOG, r);
+    old_stat = ap_update_child_status(r->connection, SERVER_BUSY_LOG, r);
 
     /*
      * We want to flush the last packet if this isn't a pipelining connection
@@ -1251,11 +1248,9 @@
     ap_bhalfduplex(r->connection->client);
     ap_log_transaction(r);
 
-    (void) ap_update_child_status(r->connection->child_num, 
-				  r->connection->thread_num, old_stat, r);
+    (void) ap_update_child_status(r->connection, old_stat, r);
     if (ap_extended_status)
-	ap_time_process_request(r->connection->child_num,
-				r->connection->thread_num, STOP_PREQUEST);
+	ap_time_process_request(r->connection, STOP_PREQUEST);
 
 }
 
Index: main/scoreboard.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/scoreboard.c,v
retrieving revision 1.7
diff -u -r1.7 scoreboard.c
--- scoreboard.c	1999/04/09 04:10:37	1.7
+++ scoreboard.c	1999/05/17 04:40:53
@@ -311,6 +311,7 @@
 
 static void setup_shared_mem(pool *p)
 {
+#if 0
     struct shmid_ds shmbuf;
     const server_rec * server_conf = ap_get_server_conf();
 #ifdef MOVEBREAK
@@ -392,6 +393,7 @@
     }
 #endif
     ap_scoreboard_image->global.running_generation = 0;
+#endif
 }
 
 API_EXPORT(void) reopen_scoreboard(pool *p)
@@ -458,6 +460,7 @@
 /* Called by parent process */
 void reinit_scoreboard(pool *p)
 {
+#if 0
     int running_gen = 0;
     if (ap_scoreboard_image)
 	running_gen = ap_scoreboard_image->global.running_generation;
@@ -484,6 +487,7 @@
     ap_scoreboard_image->global.running_generation = running_gen;
     force_write(scoreboard_fd, ap_scoreboard_image, sizeof(*ap_scoreboard_image));
 #endif
+#endif
 }
 
 /* Routines called to deal with the scoreboard image
@@ -568,8 +572,9 @@
     return -1;
 }
 
-int ap_update_child_status(int child_num, int thread_num, int status, request_rec *r)
+int ap_update_child_status(conn_rec *c, int status, request_rec *r)
 {
+#if 0
     int old_status;
     thread_score *ss;
     parent_score *ps;
@@ -623,10 +628,12 @@
     
     put_scoreboard_info(child_num, thread_num, ss);
     return old_status;
+#endif
 }
 
-void ap_time_process_request(int child_num, int thread_num, int status)
+void ap_time_process_request(conn_rec *c, int status)
 {
+#if 0
     thread_score *ss;
 
     if (child_num < 0)
@@ -651,4 +658,5 @@
         }
     }
     put_scoreboard_info(child_num, thread_num, ss);
+#endif
 }
