Changes to memory management of handlers
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.