Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 32.390.423 Times

libcontain 0.2 Alpha1

  Date Added: September 03, 2010  |  Visits: 795

libcontain 0.2

Report Broken Link
Printer Friendly Version

Product Homepage
Download (70 downloads)

libcontain library provides a large and growing number of fast and thread-safe containter objects written in C and C++. The libcontain library now provides the following container types: - a series of hash tables libcontain includes the hash table implementation from GNU glib and a hash implementation in C++ it inherited from the libhash library it originates from. This latter has been rendered thread-safe in the 0.2 release and implements a linear hashing algorithm. A single hash table implementation that will replace them both is on the drawing boards and is intended to be thread-safe and non-blocking. - an array (vector) implementation libcontain currently includes a non-blocking array implementation. However, this implementation presents a race-condition in concurrent calls to any of its writing functions if the array is in the process of being resized. There is currently no known non-blocking way to solve this race condition. Help is welcome in this area. - a binomial tree The binomial tree provided by libcontain does not provide any algorithmic logic in its implementation: it is a generic container that can be used as the basis for other container implementations, such as a heap or a map (as a matter of fact, the heap and the map are both based on this binomial tree) - a heap libcontain provides an automatically sorting heap implementation that (obviously) uses a heap sort to sort the elements it contains. Unfortunately, the heap implementation is not non-blocking (although bases on a non-blocking binomial tree implementation). It contains four levels of locks: a reader count and a write lock at the level of the nodes, and a reader count and a write lock at the level of the container. The locks are posed on the container for as short a time as possible so at to prevent the progress of the algorithm to block too long. If anyone knows of a non-blocking heap algorithm, input is more than welcome. - a list libcontain provides a non-blocking list implementation based on an algorithm by M.M. Micheal (also the inventor of Safe Memory Reclamation on which libmemory is based). a map The map implementation included in libcontain is based on the binomial tree implementation. Unlike some implementations based on binary trees, this implementation stores values in each node of the tree (not just the leaf nodes) and therefore allows a more memory-efficient way to store information than hashes and other map implementations. Also, the map implementation does not use a "less" function but uses a three-way comparison to compare keys (much like the helper function used by qsort). The implementation is almost (but not quite) non-blocking: for most intents and purposes, there are no real locks: read and write operations may be re-directed along a branch of the binomial tree if a node that they traverse is being deleted, but will not block for that. However, a remove operation will wait for another remove operation to finish if it traverses a node being removed. - a queue a non-blocking queue implementation is provided - a stack a non-blocking stack implementation is also provided In future versions, the hash implementation will be replaced by a non-blocking one and the remaining problems with the existing containers will (hopefully) be solved. Help is also needed to write the architecture-dependant code for non-IA32 platforms such as Sparc. Whats New in This Release: - The 0.2 release introduces number 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 containters impervious to the ABA problem and thus truly thread-safe.. A generic dependency tracker implementation in C++, based on a generic Directed Acyclic Graph

Requirements: No special requirements
Platforms: Linux
Keyword: Based On Binomial Tree Heap Implementation In C Libcontain Libraries Non-blocking Programming Thread-safe Tree Written In
Users rating: 0/10

License: Freeware Size: 378.88 KB
More Reviews or Write Review

Libraries  -  libGLI 0.4
libGLI is a multi-platform library for creating 3D user interfaces, based on OpenGL. With the help of this library, programmers can add in their own graphical application elements for the user interface and connect interface objects to their own...
61.44 KB  
Network & Internet  -  Zwiki 0.56.0
Zwiki is a Wiki engine based on Zope which allows you to build Wiki Webs (easy-to-edit, flexible, collaborative Web sites) in the Zope environment. Zwiki is an easy-to-use, fun, and powerful wiki engine based on the Zope web application server;...
614.4 KB  
Audio Tools  -  Chordpack 0.8.2
Chordpack is a tool written in Perl, whose purpose is to typeset song-books/songs written in chordpro format. The typesetting is done through typesetting system TeX using macro package LaTeX. Chordpack was created to do whatever you might want to...
23.55 KB  
Puzzles  -  A Sudoku Solver in C 1.11
A Sudoku Solver in C is a console-based Linux program, written in C language, that solves Su Doku puzzles using deductive logic. It will only resort to trial-and-error and backtracking approaches upon exhausting its deductive moves. Puzzles must...
25.6 KB  
Libraries  -  Exceptions in C 0.1.5
Exceptions in C implements fully-functional nested exceptions with these constructs: try except on throw Also, it allows to define various datatypes for exception object (default is int, can be anything from char * to struct foo *)....
15.36 KB  
Utilities  -  DomSax 1.0.0
DomSax is an implementation of a XML-parser based on the standard Document Object Model principle (and suns implementation), combining it with the flexibility and possibility of low memory consumption of the SAX-parser (also suns implementation)....
18.43 KB  
Libraries  -  Libgtkol 1.4
Libgtkol is GTK C++ Object Layer based on the libgenerics abstract services and the Gtk API. The project offers the developers a complete intuitive object API without restricting access to the Gtk functionalities themselves.. Get libgenerics at...
378.88 KB  
Development Tools  -  Herr Klaus 1.0
Simulink implementation of a human atrial action potential model based on the publication of:A Nygren, C. Fiset, L. Firek, J.W. Clark, D.S. Lindblad, R.B. Clark and W.R. Giles. Mathematical Model of an Adult Human Atrial Cell: The Role of K+...
10 KB  
3D Graphic Tools  -  Fyre 1.0.1
Fyre project is a tool for producing computational artwork based on histograms of iterated chaotic functions. At the moment, it implements the Peter de Jong map in a fixed-function pipeline with an interactive GTK+ frontend and a command line...
296.96 KB  
Networking Tools  -  GtkOL-LDAP 1.1.1
GtkOL-LDAP is a client GtkOL based on GUI. It is designed to help you administer OpenLDAP directories. The application core is developped in a modular way to enable easy template handling such as posix accounts or samba entries specificities...
276.48 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB  
Libraries  -  wolfSSL 3.15.3
The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating...
3.88 MB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB