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

NAME

       PMAPI_INTERNAL  -  internal  details  for  the Performance Metrics Application Programming
       Interface

C SYNOPSIS

       #include "pmapi.h"
       #include "libpcp.h"

        ... assorted routines ...

       cc ... -lpcp

CAVEAT

       This documentation is intended for internal Performance Co-Pilot (PCP) developer use.

       These interfaces are not part of the PCP APIs that are guaranteed to remain  fixed  across
       releases,  and  they may not work, or may provide different semantics at some point in the
       future.

DESCRIPTION

       Refer to PMAPI(3) for  general  information  about  the  external  interfaces  defined  in
       <pcp/pmapi.h>.  The interfaces described here assume that context.

MULTI-THREADED APPLICATIONS

       The  following groups of internal functions and services in libpcp are restricted to being
       called from a single-thread, and this is  enforced  by  returning  PM_ERR_THREAD  when  an
       attempt to call the routines in each group from more than one thread is detected.

       1.  The  interval  timer  services  use global state with semantics that demand it is only
           used in the context of a single  thread,  so  __pmAFregister(3),  __pmAFunregister(3),
           __pmAFblock(3), __pmAFunblock(3) and __pmAFisempty(3).

       2.  The  following  access control manipulation routines that are principally intended for
           single-threaded  applications:  __pmAccAddOp,  __pmAccSaveHosts,  __pmAccRestoreHosts,
           __pmAccFreeSavedHosts,    __pmAccAddHost,   __pmAccAddClient,   __pmAccDelClient   and
           __pmAccDumpHosts.

       3.  The following routines that  identify  pmlogger  control  ports  and  are  principally
           intended for single-threaded applications: __pmLogFindPort and __pmLogFindLocalPorts.

SEE ALSO

       PMAPI(3).