/* Allocate shared memory for scoreboard */
if (ap_scoreboard_image == NULL) {
rc = DosAllocSharedMem((PPVOID)&ap_scoreboard_image, ap_scoreboard_fname,
- sizeof(scoreboard), PAG_COMMIT|PAG_READ|PAG_WRITE);
+ ap_calc_scoreboard_size(),
+ PAG_COMMIT|PAG_READ|PAG_WRITE);
if (rc) {
ap_log_error(APLOG_MARK, APLOG_ERR, APR_FROM_OS_ERROR(rc), ap_server_conf,
return FALSE;
}
- memset(ap_scoreboard_image, 0, sizeof(scoreboard));
+ ap_init_scoreboard();
}
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, ap_server_conf,
rc == 0 && rd.ulData != WORKTYPE_EXIT) {
pconn = worker_args->pconn;
ap_create_sb_handle(&sbh, pconn, child_slot, thread_slot);
- current_conn = ap_run_create_connection(pconn, ap_server_conf, worker_args->conn_sd, conn_id);
+ current_conn = ap_run_create_connection(pconn, ap_server_conf, worker_args->conn_sd, conn_id, sbh);
if (current_conn) {
ap_process_connection(current_conn);