Skip to content

v1.4.1 release

Latest
Compare
Choose a tag to compare
@mjsottile mjsottile released this 24 Mar 07:47
· 2 commits to master since this release

Summary

This is a bug fix release that addresses a race condition that can occur in multi-threaded programs when memory management is enabled. In previous versions of the library memory management was enabled by default. This is no longer the case, and it must be enabled explicitly at configure time.

Explanation of bug: The global variables used for caching and reusing allocated structures and the functions that manipulate them do not currently protect critical sections to guarantee atomicity which can lead to failures in multithreaded programs. The current fix is to disable memory management by compiling with the _NO_MEMORY_MANAGEMENT_ directive such that the thread-unsafe code must be enabled explicitly. The unsafe code may be removed in future releases if performance evaluation determines that it is a legacy feature that no longer provides a tangible performance benefit. If it does provide a measurable benefit, a thread-safe fix will be implemented.

What's Changed

  • include LICENSE_LGPL in the distribution archive by @mjg in #20
  • few fixes to run test_builds.sh by @ether42 in #22
  • enable NO_MEMORY_MANAGEMENT by default by @ether42 in #23

New Contributors

Full Changelog: v1.4.0...v1.4.1