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

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

Serving Software Downloads in 956 Categories, Downloaded 50.246.476 Times

DM1 Threads Library 1.0.5

  Date Added: November 23, 2010  |  Visits: 1.029

DM1 Threads Library

Report Broken Link
Printer Friendly Version


Product Homepage
Download (98 downloads)



DM1 Thread Library is part of the DM1 project. This library was born out of my need to have a portable C++ Thread library that would be simple to use, and would provide all the necessary Threads functionality I required for the DM1 project. Initially, this library was in C, but when I decided to re-write DM1 in C++, I ported the library to C++. During the port, I enhanced the functionality of the Threads library. The DM1 Threads library aims to be small. It does not try to provide a comprehensive set of functionality, but only what is absolutely essential for a project like DM1. I had the simplicity of the Java Threads package in mind when creating this library. The constructs provided by the DM1 Thread library are: - Thread objects that represent Operating System threads. - A Mutex is provided as a mechanism for Mutual Exclusion . Mutexes are used to ensure that a piece of code is executed by only one thread at any point in time. - Events are provided as low-level mechanisms for thread synchronisation. Events can be waited for, and signalled to. - A higher level object, that combines the functionality of an Event and a Mutex, is provided. This is the Monitor object. A Monitor can be locked exclusively, just like a Mutex, but it can also be made the object of a Wait operation. The signalling mechanism supports notification of one or more waiting threads. - To enable more efficient locking when both shared and exclusive access to data is required, Latches are provided. - Apart from the Thread synchronisation primitives described above, the library also provides a ThreadPool for the situation when it is inefficient to create a thread exclusively for a particular task, and it is desirable to share a pool of threads for executing multiple tasks. Design Principles The DM1 Threads library was designed with the following principles in mind: 1. Implement the bare minimum that is required. This Threads library does not aim to be a comprehensive threads package. 2. Avoid complex algorithms. If a particular construct is hard to implement correctly on all platforms, avoid it. 3. Document the library. 4. Avoid low level code, such as assembler code to implement Spin locks. Rely on the libraries provided by the Operating System. 5. Avoid holding Mutexes beyond function calls. A DM1 Thread library function will not hold any Mutex locks when it returns. 6. Avoid using clever C++ techniques wherever possible. (Unfortunately, some cleverness is required to implement the Thread class correctly). 7. Avoid dependency on external libraries. The DM1 library only requires the standard C library, apart from native Threads functionality. 8. Always report an error as soon as it is discovered. 9. Insert debug messages that can be switched on at run-time. 10. Do not throw exceptions from destructors because these might be executing as a result of an uncaught exception. 11. Never let an error go unreported..

Requirements: No special requirements
Platforms: Linux
Keyword: Avoid Functionality Libraries Library Programming Provided Thread Threads
Users rating: 0/10

License: Freeware Size: 235.52 KB
USER REVIEWS
More Reviews or Write Review


DM1 THREADS LIBRARY RELATED
Libraries  -  GUASI 0.24
GUASI library implements a thread based generic asyncronous execution engine, to be used to give otherwise syncronous calls an asyncronous behaviour. GUASI comes from Generic Userspace Asyncronous Syscall Interface. It can be used to wrap any...
348.16 KB  
Programming  -  MacFSEvents 0.2.4
MacFSEvents is a Python library that provides thread-safe directory observation primitives using callbacks. It wraps the Mac OS X FSEvents API in a C-extension.
10.24 KB  
Libraries  -  LWJGL 0.99
LWJGL (Lightweight Java Game Library) is a solution aimed directly at professional and amateur Java programmers alike to enable commercial quality games to be written in Java. LWJGL provides developers access to high performance crossplatform...
1.3 MB  
Programming  -  GWT Validation Library 2.0b
GWT-VL stands for "Google Web Toolkit - Validation Library"!. It is here to fill the gap of missing validation functionality from GWT. Its aim is to provide a library of prebuilt validation functionality as well as a framework that...
235.52 KB  
Libraries  -  PHP Tag Engine 1.0
PHP Tag Engine project is a library that allows you to easily add tagging functionality to a PHP application.. Crowd Favorite offers web-based task-management software, WordPress development, blog consulting and general web development services.
87.04 KB  
Libraries  -  JsHttpRequest 5.0
JsHttpRequest project is an easy-to-use cross-browser AJAX library with AJAX file uploading support and many other features. JsHttpRequest first appeared as cross-browser analogue of XMLHttpRequest, and then became a very useful instrument to...
122.88 KB  
Libraries  -  linda 0.1.1
linda is a simple library implementation of the Linda parallel programming system. To write a parallel program with linda, you have to know only 6 functions: spawn, out, in, inp, rd, and rdp. linda was originally written by Wong Weng Fai. It has...
184.32 KB  
Network & Internet  -  GvTags 0.3.0
GvTags is a lightweight yet powerful tag library and template engine for the dynamic programming language Groovy. The tag library can be used to generate Web pages with powerful tag support. GvTags can be used with the template servlet of GvTags...
1.9 MB  
Libraries  -  Lazarus x32 0.9.30.2
The Lazarus IDE application was designed to be a stable and feature rich visual programming environment for the FreePascal Compiler. It supports the creation of self-standing graphical and console applications. Lazarus is the class libraries for...
64.5 MB  
Libraries  -  Lazarus x64 0.9.30.2
The Lazarus IDE application was designed to be a stable and feature rich visual programming environment for the FreePascal Compiler. It supports the creation of self-standing graphical and console applications. Lazarus is the class libraries for...
75.5 MB  
NEW DOWNLOADS IN PROGRAMMING, LIBRARIES
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 4.0.0
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