liblfds release 6.1.0 release note
Release date : 31st December 2012
Release 6.1.0 is a (long-overdue) maintenance release. Almost no new functionality has been added, but all existing bugs have been fixed.
The only supported upgrade path is from release 6.0.0 to release 6.1.0.
- The liblfds abstraction layer now contains abstractions for compiler barriers and processor barriers.
- The method used to inline has changed; all inlining is now static (affecting LFDS610_INLINE define).
- lfds610_abstraction_aligned_malloc has been replaced by lfds610_abstraction_malloc and this lfds abstraction layer function requires only malloc, rather than aligned malloc.
- lfds610_abstraction_aligned_free has been replaced by lfds610_abstraction_free and this lfds abstraction layer function requires only free, rather than aligned free.
- The liblfds abstraction layer is no longer publicly visible in the library.
- lfds610_slist_delete_element has been renamed lfds610_slist_logically_delete_element and now returns int, rather than void, where the return value is 1 if the call deleted the element or 0 if the element had already been deleted.
- lfds610_slist_delete_all_elements has been renamed lfds610_slist_single_threaded_physically_delete_all_elements.
- All data structure now have a lfds610_[data structure]_use function. After a data structure is instantiated, a thread (except for the instantiating thread) must call the lfds610_[data structure]_use function on that instance before using that instance.
- The argument passed to lfds610_abstraction_increment now has a volatile type qualifier.
- The ringbuffer query function is now exported to the shared object.
- Added a test for CAS.
- Proper SList and Stack tests (rather than merely workloads).
- The iteration argument now works on non-x64 platforms.
- The benchmark option now supports the iteration argument.
- Compiler and processor barriers added.
- The abstraction layer now inlines correctly (hat-tip to "Codeplug").
- Valgrind clean (hat-tip to "jd").
- Register starvation with shared object builds fixed.
- All hand-written ARM assembly code replaced with GCC intrinsics.
- All hand-written Intel assembly code (except for contigious double-word compare-and-swap) replaced with GCC intrinsics.
- Thread affinity added to the Linux thread starter function.
No known issues.
No known issues.