Apache2-ScoreBoardFile
view release on metacpan or search on metacpan
ScoreBoardFile.xs view on Meta::CPAN
ws->status!=SERVER_DEAD) )
result[k].count+=ws->access_count;
break;
case STAT_NUM_BYTE:
if( ws->access_count!=0 ||
(ws->status!=SERVER_READY &&
ws->status!=SERVER_DEAD) )
result[k].count+=ws->bytes_served;
break;
case STAT_BUSY_WORKER:
if( !ps->quiescing && ps->pid ) {
switch(ws->status) {
case SERVER_DEAD:
case SERVER_STARTING:
case SERVER_IDLE_KILL:
case SERVER_READY:
break;
default:
result[k].count++;
break;
}
}
break;
case STAT_IDLE_WORKER:
if( !ps->quiescing && ps->pid ) {
switch(ws->status) {
case SERVER_READY:
result[k].count++;
break;
}
}
break;
case STAT_CURR_WORKER:
if( !ps->quiescing && ps->pid ) {
switch(ws->status) {
case SERVER_DEAD:
case SERVER_STARTING:
case SERVER_IDLE_KILL:
break;
default:
result[k].count++;
break;
}
}
break;
}
} else if(result[k].what==ws->status) {
result[k].count++;
}
}
}
}
}
static inline int
init(int fd, Apache2__ScoreBoardFile *result) {
void *map;
struct stat statbuf;
*result=NULL;
if(fstat(fd, &statbuf)) return -1;
map=mmap(NULL, statbuf.st_size, PROT_READ, MAP_SHARED, fd, 0);
if( map==MAP_FAILED ) return -1;
*result=map;
return 0;
}
static inline double
time2double( apr_time_t time ) {
return (double)apr_time_sec(time) +
(double)apr_time_usec(time)/(double)APR_USEC_PER_SEC;
}
static inline int
destroy( Apache2__ScoreBoardFile map ) {
return munmap(map, map->prefix.sz);
}
MODULE = Apache2::ScoreBoardFile PACKAGE = Apache2::ScoreBoardFile
Apache2::ScoreBoardFile
new(class, stream)
SV *class
SV *stream
PROTOTYPE: $$
CODE:
PERL_UNUSED_VAR(class); /* -W */
{
SV *sv;
IO* io;
if( SvROK(stream) &&
(sv=SvRV(stream)) &&
SvTYPE(sv)==SVt_PVGV &&
(io=GvIO(sv)) &&
IoIFP(io) ) {
init( PerlIO_fileno(IoIFP(io)), &RETVAL );
} else {
int fd=open(SvPV_nolen(stream), O_RDONLY);
if(fd<0) RETVAL=NULL;
else {
init(fd, &RETVAL);
close(fd);
}
}
}
OUTPUT:
RETVAL
void
summary(obj, ...)
Apache2::ScoreBoardFile obj
PROTOTYPE: $@
PPCODE:
{
int i;
struct summary result[MAX_STAT_RESULTS];
memset(result, 0, sizeof(result));
( run in 0.510 second using v1.01-cache-2.11-cpan-39bf76dae61 )