Provided by: libpcp3-dev_6.0.3-1_amd64 bug

NAME

       pmWebTimerRegister,  pmWebTimerRelease,  pmWebTimerSetMetricRegistry  -  thread-safe timer
       list management

C SYNOPSIS

       #include <pcp/pmwebapi.h>

       typedef void (*pmWebTimerCallBack)(void *data);
       int pmWebTimerRegister(pmWebTimerCallBack callback, void *data);

       int pmWebTimerRelease(int seq);
       int pmWebTimerSetMetricRegistry(struct mmv_registry *registry);
       cc ... -lpcp_web

DESCRIPTION

       The pmWebTimerRegister and related API functions provide a convenient thread-safe API  for
       applications  to  manage  a  list  of  timer  driven  callbacks.   On  the  first  call to
       pmWebTimerRegister or  pmWebTimerSetMetricRegistry,  an  internal  timer  is  set  up  and
       initialized  to  fire  every  1.0  seconds.   Each  time  the  timer  fires, all currently
       registered callback functions will be called serially with the opaque  data  pointer  that
       was supplied when each function was registered.  The pmWebTimerCallBack typedef provides a
       suitable callback function prototype.

       All  registered  callback  functions  should  be  non-blocking  and  execute  quickly  and
       synchronously.  Typical callback functions include refreshing instrumentation, calculating
       and updating performance metric values, periodic garbage collection and  any  other  local
       function that requires regular execution.

       The  pmWebTimerSetMetricRegistry  function provides a convenient way for an application to
       pass in a pointer to an libpcp_mmv(3) registry that has been suitably initialized  by  the
       calling application.  This registry will be used to dynamically create six server resource
       metrics   named   NAME.mem.datasz,    NAME.mem.maxrss,    NAME.cpu.total,    NAME.cpu.sys,
       NAME.cpu.user  and NAME.pid, where NAME is the root PCP PMNS(5) name set up by the calling
       application.  These metrics should be reasonably self explanatory; they  provide  resource
       usage  metrics  from  the  calling application / server and use getrusage(2), times(2) and
       getpid(2).

RETURN VALUE

       The pmWebTimerRegister function returns a positive integer handle that may be subsequently
       used  in a call to pmWebTimerRelease to remove a timer from the internal timer list.  When
       a timer is removed with a call to pmWebTimerRelease,  the  internal  data  structures  are
       freed.   The  caller however, is responsible for freeing the associated data (since it may
       or may not be dynamically allocated).

DIAGNOSTICS

       On failure a negative PMAPI error code is returned in all cases.

SEE ALSO

       pmproxy(1), mmv_stats_registry(3), PMAPI(3) and PMWEBAPI(3).