> commit ada57af7f86706729209bfe555a8fe957792ff53
> Author: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
> Date: Fri Apr 18 11:59:52 2014 +1000
>
> pmlogger I/O changes - part 2
>
> This commit makes further changes to improve the I/O behaviour when
> archives are being created.
>
> [...]
> 2. change the semantics for the internal __pmLogPutResult() routine
> so that the buffer containing the PDU is large enough to allow
> __pmLogPutResult() set the record length in the end of the buffer
> and then output all of the logical record (header, pmResult &
> trailer) in a single write()
> [...]
This change is backward-incompatible, so any older binaries would
likely result in memory corruption when run against the new shared
library. We could say that it doesn't matter, that the symbol is
"internal", etc.
Or we could fix it. The function with the new requirement could be
renamed __pmLogPutResult2. The older __pmLogPutResult symbol could be
replaced by a wrapper that does an internal memory-copy, or something
else safe.
We could even inoculate against such future problems to some extent.
"internal" utility functions could be formally identified (since the
"__" naming prefix is not that). They could be excluded from shared
libraries and installed documentation, and built only as .a files.
The export files for future versions of PCP shared libraries could be
a lot smaller.
- FChE
|