Apache2-ScoreBoardFile
view release on metacpan or search on metacpan
ScoreBoardFile.xs view on Meta::CPAN
}
}
}
}
}
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));
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: $
CODE:
RETVAL=obj->gscore.running_generation;
OUTPUT:
RETVAL
unsigned int
lb_limit(obj)
Apache2::ScoreBoardFile obj
PROTOTYPE: $
CODE:
RETVAL=obj->gscore.lb_limit;
OUTPUT:
RETVAL
double
restart_time(obj)
Apache2::ScoreBoardFile obj
PROTOTYPE: $
CODE:
RETVAL=time2double(obj->gscore.restart_time);
OUTPUT:
RETVAL
Apache2::ScoreBoardFile::Process
process(obj, index)
Apache2::ScoreBoardFile obj
unsigned int index
PROTOTYPE: $$
INIT:
if( !(0<=index && index<obj->gscore.server_limit) )
XSRETURN_UNDEF;
CODE:
RETVAL=&(obj->pscore[index]);
OUTPUT:
RETVAL
Apache2::ScoreBoardFile::Worker
worker(obj, pindex, tindex=-1)
Apache2::ScoreBoardFile obj
unsigned int pindex
unsigned int tindex
PROTOTYPE: $$;$
INIT:
int sl=obj->gscore.server_limit;
int tl=obj->gscore.thread_limit;
if( items>2 ) pindex=tl*pindex+tindex; /* 2 indices: procnr, threadnr */
if( !(0<=pindex && pindex<sl*tl) ) XSRETURN_UNDEF;
CODE:
/* warn("sl=%d, tl=%d, start_of_ws=%x\n", sl, tl, */
/* (char*)(&(obj->pscore[sl]))-(char*)obj); */
RETVAL=&(((worker_score*)(&(obj->pscore[sl])))[pindex]);
OUTPUT:
RETVAL
void
DESTROY(obj)
Apache2::ScoreBoardFile obj
PROTOTYPE: $
CODE:
destroy(obj);
MODULE = Apache2::ScoreBoardFile PACKAGE = Apache2::ScoreBoardFile::Process
unsigned int
pid(obj)
Apache2::ScoreBoardFile::Process obj
PROTOTYPE: $
CODE:
RETVAL=obj->pid;
OUTPUT:
RETVAL
unsigned int
generation(obj)
Apache2::ScoreBoardFile::Process obj
PROTOTYPE: $
CODE:
RETVAL=obj->generation;
OUTPUT:
RETVAL
unsigned int
quiescing(obj)
Apache2::ScoreBoardFile::Process obj
PROTOTYPE: $
CODE:
RETVAL=obj->quiescing;
OUTPUT:
RETVAL
MODULE = Apache2::ScoreBoardFile PACKAGE = Apache2::ScoreBoardFile::Worker
int
thread_num(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=obj->thread_num;
OUTPUT:
RETVAL
unsigned int
pid(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=obj->pid;
OUTPUT:
RETVAL
unsigned int
generation(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=obj->generation;
OUTPUT:
RETVAL
char
status(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
unsigned status=obj->status;
if( status>=sizeof(ws_status_letters)-1 ) {
RETVAL='?';
} else {
RETVAL=ws_status_letters[status];
}
OUTPUT:
RETVAL
unsigned int
access_count(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=obj->access_count;
OUTPUT:
RETVAL
unsigned int
bytes_served(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=obj->bytes_served;
OUTPUT:
RETVAL
unsigned int
my_access_count(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=obj->my_access_count;
OUTPUT:
RETVAL
unsigned int
my_bytes_served(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=obj->my_bytes_served;
OUTPUT:
RETVAL
unsigned int
conn_count(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=obj->conn_count;
OUTPUT:
RETVAL
unsigned int
conn_bytes(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=obj->conn_bytes;
OUTPUT:
RETVAL
double
start_time(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=time2double(obj->start_time);
OUTPUT:
RETVAL
double
stop_time(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=time2double(obj->stop_time);
OUTPUT:
RETVAL
double
last_used(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=time2double(obj->last_used);
OUTPUT:
RETVAL
char*
client(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=obj->client;
OUTPUT:
RETVAL
char*
request(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=obj->request;
OUTPUT:
RETVAL
char*
vhost(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
RETVAL=obj->vhost;
OUTPUT:
RETVAL
unsigned int
tid(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
#if APR_HAS_THREADS
RETVAL=obj->tid;
#else
RETVAL=(unsigned)-1;
#endif
OUTPUT:
RETVAL
unsigned int
utime(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
#if HAVE_TIMES
RETVAL=obj->times.tms_utime;
#else
RETVAL=(unsigned)-1;
#endif
OUTPUT:
RETVAL
unsigned int
stime(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
#if HAVE_TIMES
RETVAL=obj->times.tms_stime;
#else
RETVAL=(unsigned)-1;
#endif
OUTPUT:
RETVAL
unsigned int
cutime(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
#if HAVE_TIMES
RETVAL=obj->times.tms_cutime;
#else
RETVAL=(unsigned)-1;
#endif
OUTPUT:
RETVAL
unsigned int
cstime(obj)
Apache2::ScoreBoardFile::Worker obj
PROTOTYPE: $
CODE:
#if HAVE_TIMES
RETVAL=obj->times.tms_cstime;
#else
RETVAL=(unsigned)-1;
#endif
OUTPUT:
RETVAL
# Local Variables:
# mode: c
# End:
( run in 0.317 second using v1.01-cache-2.11-cpan-13bb782fe5a )