Paste
Pasted as C by aspel ( 16 years ago )
#include "httpd.h"
#include "http_config.h"
#include "apr_strings.h"
#include "scoreboard.h"
#include "ap_mpm.h"
#include <unistd.h>
static int ru_fixup(request_rec *r)
{
apr_pool_t *rp = r->pool;
worker_score *ws_record;
process_score *ps_record;
int tick;
tick = sysconf(_SC_CLK_TCK);
pid_t worker_pid;
clock_t tmp_tu, tmp_ts, tmp_tcu, tmp_tcs;
ws_record = ap_get_scoreboard_worker(r->connection->id, 0);
ps_record = ap_get_scoreboard_process(r->connection->id);
worker_pid = ps_record->pid;
tmp_tu = ws_record->times.tms_utime;
tmp_ts = ws_record->times.tms_stime;
tmp_tcu = ws_record->times.tms_cutime;
tmp_tcs = ws_record->times.tms_cstime;
apr_table_set(r->notes, "cpu", apr_psprintf(rp, "%s pid:%lu child:%lu req:'%s' cpu:%lu",
ws_record->vhost, ps_record->pid, r->connection->id, ws_record->request,(tmp_tu + tmp_ts + tmp_tcs + tmp_tcu ) / tick ));
return DECLINED;
}
static void myRegisterHooks(apr_pool_t *p) {
ap_hook_handler(ru_fixup, NULL, NULL, APR_HOOK_MIDDLE);
}
module AP_MODULE_DECLARE_DATA myhits_module = {
STANDARD20_MODULE_STUFF,
NULL,
NULL,
NULL,
NULL,
NULL,
myRegisterHooks
};
Revise this Paste
Parent: 18743