Subscribe: Project News: Just Another Interpreted Language
Added By: Feedage Forager Feedage Grade C rated
Language: English
algorithm  containers  hash implementation  implementation  libmemory  library  memory  safe  smr algorithm  smr  thread safe  thread 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Project News: Just Another Interpreted Language

Recent posts to news

Recent posts to news

Last Build Date: Fri, 07 May 2004 21:25:07 -0000


libcontain-0.2-alpha1 released

Fri, 07 May 2004 21:25:07 -0000

The libcontain library provides a large and growing number of fast and thread-safe container objects written in C and C++. This re;ease introduces a nuimber of important new features including a heap and a map, both based on a lock-free binomial tree. It also includes the required memory management to make the containers impervious to the ABA problem and thus truly thread-safe.

Many of the restrictions formerly bound to the containers have been lifted by the integration of the SMR-based memory management, provided by libmemory. Most of the containers are now truly thread-safe in the sense that you can combine any operation with any other on a single object, including two or more write operations.

Additionally, the hash implementation from libhash - with which this library began - has been reviewed and rendered thread-safe and faster than it was before. This same hash implementation was also the basis of a dictionary object that outran Microsoft's equivalent. This implementation should now be faster than the dictionary in question! It is, however, still lock-based - but a non-blocking hash implementation has been on the drawing boards for quite some time now and should be forthcoming shortly.

Help is still wanted for this project: there is an unsolved race condition in the array (vector) implementation and the architecture-specific code needs porting to non-IA32 platforms.

libmemory-0.0-alpha1 released

Fri, 07 May 2004 19:50:41 -0000

The libmemory library provides and implementation of M.M. Micheal's Safe memory Reclamation algorithm in C. This release is the first public release of the library.

The Safe Memory Reclamation (SMR) algorithm by M.M. Micheal provides a convenient way to get rid of the so-called ABA problem in which a value changes from A to B back to A between two reads. If, for example, the value you're reading is a pointer and the memory to which it points is freed and re-allocated between two reads, what you do with the memory it points to in that time may result in mayhem. The SMR algorithm prevents this by registering a "hazardous reference" to the pointer thus preventing the memory from being reclaimed while a reference exists.

The implementation is designed to fully implement the SMR algorithm without restricting the user to provide such information as the maximum number of threads used by the application or the batch size to be used by the algorithm. It will run on any POSIX-compliant platform and uses the POSIX threads API for thread-local storage. It should, however, be a trivial effort to port this library to Windows (but as I don't have a Windows machine available at this time, I won't be able to do that).

Help is still wanted for testing, writing the architecture-dependant code for non-IA32 platforms, etc.