Skip to content

v2.4 Beta Released

Pre-release
Pre-release

Choose a tag to compare

@lhmouse lhmouse released this 31 May 15:16
· 408 commits to master since this release
e516e4f

This minor release contains the following changes since v2.3-ga.2:

  1. A new header, mcfgthread/teb.h, has been introduced for accessing the Thread Environment Block (TEB).
  2. Destructors of thread-local objects are no longer invoked where the DLL loader lock is held, to avoid any limitations about DllMain() callbacks.
  3. A new function _MCF_hires_tick_count() has been added.
  4. _MCF_tick_count() no longer depends on QueryInterruptTime() or GetTickCount64().
  5. New functions _MCF_steady_now() and _MCF_hires_steady_now() have been introduced to imitate clock_gettime(CLOCK_MONOTONIC, ...) on Linux. As a side note, _MCF_tick_count() and _MCF_hires_tick_count() imitate clock_gettime(CLOCK_BOOTTIME, ...) on Linux.
  6. Building with Link Time Optimization (LTO) is now supported, which can be enabled by passing -Db_lto=true to meson setup.
  7. _MCF_mutex_lock() and _MCF_mutex_unlock() now recognize more patterns in fast paths, so they no longer take slow paths due to intermittent contention.
  8. (MSVC only) C++ exceptions will no longer escape from callbacks that do not allow exceptions, such as arguments to __MCF_cxa_atexit(). They now lead to std::terminte() instead.
  9. When _MCF_event_set() doesn't change the value of an event, it no longer effects thundering herd issues.
  10. _MCF_event_await_change() now only compares the lowest byte of its second parameter.
  11. Wait operations on synchronization objects now handle zero timeouts more efficiently.
  12. Many functions on slow paths of a program have been optimized for size.
  13. libmcfgthread-minimal-2.dll no longer exports __MCF_gthr_ helper functions.

Full Changelog: https://github.com/lhmouse/mcfgthread/compare/v2.3-ga.2..v2.4-beta