Repository navigation
v2.4 Beta Released
Pre-release
Pre-release
This minor release contains the following changes since v2.3-ga.2:
- A new header,
mcfgthread/teb.h, has been introduced for accessing the Thread Environment Block (TEB). - Destructors of thread-local objects are no longer invoked where the DLL loader lock is held, to avoid any limitations about
DllMain()callbacks. - A new function
_MCF_hires_tick_count()has been added. _MCF_tick_count()no longer depends onQueryInterruptTime()orGetTickCount64().- New functions
_MCF_steady_now()and_MCF_hires_steady_now()have been introduced to imitateclock_gettime(CLOCK_MONOTONIC, ...)on Linux. As a side note,_MCF_tick_count()and_MCF_hires_tick_count()imitateclock_gettime(CLOCK_BOOTTIME, ...)on Linux. - Building with Link Time Optimization (LTO) is now supported, which can be enabled by passing
-Db_lto=truetomeson setup. _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.- (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 tostd::terminte()instead. - When
_MCF_event_set()doesn't change the value of an event, it no longer effects thundering herd issues. _MCF_event_await_change()now only compares the lowest byte of its second parameter.- Wait operations on synchronization objects now handle zero timeouts more efficiently.
- Many functions on slow paths of a program have been optimized for size.
- 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