Apache2-ScoreBoardFile
view release on metacpan or search on metacpan
ScoreBoardFile.xs view on Meta::CPAN
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));
items--;
if( items>MAX_STAT_RESULTS )
croak("Parameter list too long %d", items+1);
for( i=0; i<items; i++ ) {
char *p=(char*)SvPV_nolen(ST(i+1));
if( (result[i].what=status_char_to_status(p))==-1 ) {
croak("Unknown parameter %s", p);
}
}
collect_summary(obj,result, items);
for( i=0; i<items; i++ ) {
PUSHs(sv_2mortal(newSVnv((double)result[i].count)));
}
}
unsigned int
shmsize(obj)
Apache2::ScoreBoardFile obj
PROTOTYPE: $
CODE:
RETVAL=obj->prefix.sz;
OUTPUT:
RETVAL
unsigned int
server_limit(obj)
Apache2::ScoreBoardFile obj
PROTOTYPE: $
CODE:
RETVAL=obj->gscore.server_limit;
OUTPUT:
RETVAL
unsigned int
thread_limit(obj)
Apache2::ScoreBoardFile obj
PROTOTYPE: $
CODE:
RETVAL=obj->gscore.thread_limit;
OUTPUT:
RETVAL
unsigned int
type(obj)
Apache2::ScoreBoardFile obj
PROTOTYPE: $
CODE:
RETVAL=obj->gscore.sb_type;
OUTPUT:
RETVAL
unsigned int
generation(obj)
Apache2::ScoreBoardFile obj
PROTOTYPE: $
( run in 0.679 second using v1.01-cache-2.11-cpan-71847e10f99 )