pcp
[Top] [All Lists]

pcp updates - more thread-safe libpcp for PCP 4.0 changes

To: pcp@xxxxxxxxxxx
Subject: pcp updates - more thread-safe libpcp for PCP 4.0 changes
From: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date: Mon, 11 Jul 2011 16:53:15 +1000
Changes committed to git://oss.sgi.com/kenj/pcp.git pcp4
(note this is the pcp4 branch)

 debian/libpcp3-dev.install      |   44 ------
 man/man3/GNUmakefile            |    4 
 man/man3/pcpintro.3             |   34 ----
 man/man3/pmcontextconnectto.3   |  109 --------------
 man/man3/pmcontextundef.3       |   47 ------
 man/man3/pmfetch.3              |   23 ---
 man/man3/pmgetchildren.3        |   25 ---
 man/man3/pmgetcontextfd.3       |   65 --------
 man/man3/pmgetindom.3           |   19 --
 man/man3/pmlookupdesc.3         |   18 --
 man/man3/pmlookupindom.3        |   19 --
 man/man3/pmlookupindomtext.3    |   18 --
 man/man3/pmlookupname.3         |   18 --
 man/man3/pmlookuptext.3         |   23 ---
 man/man3/pmloop.3               |  292 ----------------------------------------
 man/man3/pmnameall.3            |   18 --
 man/man3/pmnameid.3             |   18 --
 man/man3/pmnameindom.3          |   18 --
 man/man3/pmregisterderived.3    |    8 -
 man/man3/pmstore.3              |   18 --
 man/man3/pmtraversepmns.3       |   24 ---
 src/cpan/PMDA/PMDA.pm           |   12 -
 src/cpan/PMDA/cvalue.c          |    5 
 src/dbpmda/src/util.c           |    6 
 src/include/impl.h              |   44 ++----
 src/include/mk_pmdbg            |   10 -
 src/include/pmapi.h             |   90 ------------
 src/libpcp/src/GNUmakefile      |    6 
 src/libpcp/src/access.c         |    5 
 src/libpcp/src/auxconnect.c     |   14 +
 src/libpcp/src/config.c         |   21 ++
 src/libpcp/src/connect.c        |   10 +
 src/libpcp/src/connectlocal.c   |   33 ++++
 src/libpcp/src/context.c        |  251 +---------------------------------
 src/libpcp/src/derive.c         |  118 ++++++++++++----
 src/libpcp/src/derive.h         |   11 -
 src/libpcp/src/desc.c           |   41 -----
 src/libpcp/src/err.c            |   16 --
 src/libpcp/src/events.c         |   11 +
 src/libpcp/src/fetch.c          |   47 ------
 src/libpcp/src/help.c           |   50 ------
 src/libpcp/src/instance.c       |   99 -------------
 src/libpcp/src/internal.h       |   31 ++++
 src/libpcp/src/interp.c         |   65 +++++---
 src/libpcp/src/ipc.c            |   54 ++++++-
 src/libpcp/src/logconnect.c     |    9 +
 src/libpcp/src/logportmap.c     |   32 +---
 src/libpcp/src/logutil.c        |   58 +++++--
 src/libpcp/src/optfetch.c       |   18 ++
 src/libpcp/src/pdu.c            |   21 ++
 src/libpcp/src/pdubuf.c         |   17 ++
 src/libpcp/src/pmns.c           |  209 ----------------------------
 src/libpcp/src/store.c          |   46 ------
 src/libpcp/src/tz.c             |    6 
 src/libpcp/src/util.c           |   68 +++++++--
 src/pmlogextract/pmlogextract.c |    2 
 56 files changed, 529 insertions(+), 1869 deletions(-)

commit 11e04203fc65155d2e3e97f6313dddcdb3fedf23
Author: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date:   Mon Jul 11 11:08:56 2011 +1000

    libpcp - remove all the async api support
    
    We're close to having a thread-safe libpcp, so this commit removes all
    traces of the async api features, as they are just confusing as I work
    through the last few thread-safe changes (particularly for contexts).
    
    Removed the code, man pages and unused PM_ERR_* macros.

commit 289011e06de66aba216d02844488eba65e5b7c79
Author: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date:   Mon Jul 11 07:09:21 2011 +1000

    Move libpcp along the path to a thread-safe library.
    
    Move some per-context state from global into __pmArchCtl.
    
    Change the __pmLogRead() API to add a parameter to request the (unusual)
    search to end of file semantics that used to be controlled by a global
    variable.
    
    Vary the declarations for some routines to use "const char *" instead of
    "char *", e.g.  __pmRegisterAnon(), pmLoadDerivedConfig()
    and pmRegisterDerived().
    
    Similarly change some static read-only globals to "const".
    
    Use the global libpcp mutex to protect assorted global data structures.
    
    Lots of changes in derive.c and derive_fetch.c to ensure thread-safe
    operation, including a new mutex in the "registered" data structure.

commit ba84c1e2460661bbb132346aa1cfb1ea9421be36
Author: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date:   Sat Jul 9 16:23:03 2011 +1000

    libpcp - thread-safe changes
    
    Use the libpcp global lock to protect getenv(), putenv() and
    gethostbyname() calls (and, as appropriate, their results), as these
    routines are not thread-safe.
    
    Also use the global lock to protect the following global data items and
    their associated one-trip initialization control variables:
    
    auxconnect.c
        pmcd timeout
        pmcd port
    
    connect.c
        list of pmcd ports to try
        pmproxy host
    
    context.c
        list of backoff times for pmcd reconnection attempts
    
    interp.c
        counter wrap flag
    
    logconnect.c
        pmlogger timeout
    
    pdu.c
        pmcd timeout
    
    util.c
        pcp_stderr for pmprintf
    
    And refactor to remove static data in __pmLogFindLocalPorts().



<Prev in Thread] Current Thread [Next in Thread>
  • pcp updates - more thread-safe libpcp for PCP 4.0 changes, Ken McDonell <=