Commit 0931ece0 authored by Jeff Trawick's avatar Jeff Trawick
Browse files

Fix some bogosity dealing with the mapping from process and thread

numbers to ids and back.

This gets mpmt_pthread working again (it was hanging/looping before this).
I don't know whether or not dexter had the same problem.

Submitted by:	Jeff Trawick and Greg Ames


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87955 13f79535-47bb-0310-9956-ffa450edef68
parent 9dffc683
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -59,8 +59,8 @@
#ifndef APACHE_MPM_DEFAULT_H
#define APACHE_MPM_DEFAULT_H

#define AP_ID_FROM_CHILD_THREAD(c, t)    ((c * HARD_SERVER_LIMIT) + HARD_THREAD_LIMIT)
#define AP_CHILD_THREAD_FROM_ID(i)    (i / HARD_SERVER_LIMIT), (i % HARD_THREAD_LIMIT)
#define AP_ID_FROM_CHILD_THREAD(c, t)    ((c * HARD_THREAD_LIMIT) + t)
#define AP_CHILD_THREAD_FROM_ID(i)    (i / HARD_THREAD_LIMIT), (i % HARD_THREAD_LIMIT)

/* Number of threads to spawn off by default --- also, if fewer than
 * this free when the caretaker checks, it will spawn more.
+2 −2
Original line number Diff line number Diff line
@@ -59,8 +59,8 @@
#ifndef APACHE_MPM_DEFAULT_H
#define APACHE_MPM_DEFAULT_H

#define AP_ID_FROM_CHILD_THREAD(c, t)    ((c * HARD_SERVER_LIMIT) + HARD_THREAD_LIMIT)
#define AP_CHILD_THREAD_FROM_ID(i)    (i / HARD_SERVER_LIMIT), (i % HARD_THREAD_LIMIT)
#define AP_ID_FROM_CHILD_THREAD(c, t)    ((c * HARD_THREAD_LIMIT) + t)
#define AP_CHILD_THREAD_FROM_ID(i)    (i / HARD_THREAD_LIMIT), (i % HARD_THREAD_LIMIT)

/* Number of servers to spawn off by default --- also, if fewer than
 * this free when the caretaker checks, it will spawn more.
+1 −1
Original line number Diff line number Diff line
@@ -389,7 +389,7 @@ int ap_graceful_stop_signalled(void)
static void process_socket(apr_pool_t *p, apr_socket_t *sock, int my_child_num, int my_thread_num)
{
    conn_rec *current_conn;
    long conn_id = my_child_num * HARD_THREAD_LIMIT + my_thread_num;
    long conn_id = AP_ID_FROM_CHILD_THREAD(my_child_num, my_thread_num);
    int csd;

    (void) apr_get_os_sock(&csd, sock);