* Add test case for #3351 (wrong GMT offset in SunOS/Solaris fallback)
* Fix#3352 (Missing test for Apple / POSIX.1-2024 chooses buggy workaround)
Apple platforms have had the tm_gmtoff-field at least since Mac OS X 10.0,
as are POSIX.1-2024 conforming systems, which are also required to support
it.
This has the unfortunate effect to use the SunOS/Solaris fallback, which
doesn't compute the correct value if the passed value of tm isn't the
current system time, i.e. localtime(::time()) (#3351).
* Fixed GMT offset test
---------
Co-authored-by: toh <toh@ableton.com>
std::promise and std::future use std::call_once under the hood, which requires
the tls-model to be at least initial_exec, excluding local_exec.
Furthermore, gcc has a bug regarding exceptions in std::call_once that
is best avoided. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146
for more info.
Signed-off-by: Michael de Lang <kingoipo@gmail.com>
* Expose the flusher thread object to user in order to allow setting of thread name and thread affinity when needed
* Code review fix - periodic_worker thread getter should return a reference and not a pointer
* Added a function to add callbacks that are called when a logger is registered
* Fix non captured registration 2 not being properly tested for
* Replace std::list by std::vector
* Remove const refs to shared pointers
* Fix missing header
Reason for the discard_new policy: when there is an overflow, there
is usually some unexpected issue (a bug, or some other unexpected stuff).
And in case of unexpected issue, the first arrived log messages are usually
more important than subsequent ones. For example, some application
keep logging error messages in case of functionality failure, which,
when using async_overflow_policy::overrun_oldest, will overrun the
first arrived messages that may contain real reason for the failure.
This method applies levels which is set by environment variable
`SPDLOG_LEVEL` to the a single controller. Usefull for loading
configuration into manually created loggers.