Skip to content

Changes to memory management of handlers

Compare
Choose a tag to compare
@tclune tclune released this 23 Aug 23:29
· 178 commits to main since this release
2e022bf

Changed

  • Recent addition of basic_config() (see previous release)
    introduced an ambiguity for memory management. The underlying
    design from Python is based upon garbage collection and reference
    counting. To solve this problem there the user can now either
    specify a HandlerVector or a HandlerPtrVector (but not both) If the
    former, pFlogger will copy the handlers into its internal storage.
    If the latter, pFlogger will only retain a pointer reference to the
    user actual argument. In that case, the user is repsonsible for
    maintaining the handlers until pFlogger is finalized and ensuring
    that any locks are freed.

  • The argument to Logger::add_handle() must now have the TARGET
    attribute. pFlogger will only maintain a pointer to that target.
    This is to be consistent with the above strategy.

Fixed

  • Implemented workaround for ifort 18.0.5 that became necessary after
    the changes above. Only impacted unit tests.