MSDK (Multithreading SDK)
MSDK is a C++ template library released under the GNU Lesser General Public License (LGPL) http://www.gnu.org/licenses/lgpl.html, which means it is truly free for any purpose. Nothing in MSDK is patented. Since MSDK is a C++ template library, it is distributed only as source code (plus samples and documentation). The archive could be downloaded from:
http://prdownloads.sourceforge.net/msdk/msdk-2.10.053.tar.gz?download (37K)
The source code may be browsed online at:
http://cvs.sourceforge.net/viewcvs.py/msdk
MSDK builds and runs under Windows and Linux. Its purpose is to create a convenient OS-independent framework for C++ developers. MSDK uses directly Win32/MSVCRT under Windows, and Pthreads otherwise.
MSDK 2.10, released on 12/23/2004, includes:
Basic Primitives
· Mutex - exclusive lock
· Event - tri-state event: pulse, single, and permanent
Extended Primitives
· BlockingCounter - blocks when trying to decrement from 0. A cornerstone in MSDK!
· SemiMutex - shared- and exclusive locks mixed
Thread Support
· Message<T> - optimized (typed) buffer carrier
· BlockingSequence<T> - queue/stack that blocks when trying to pop from an empty sequence
· Thread - the most important feature
Multithreading Patterns
· ReadWrite - single writer multiple readers
· ThreadPool<T> - thread pool
Process Support
· Config - config file read/write
· Log<T> - asynchronous log writer
· Service - Windows service-, Linux daemon stub
I will elaborate on each class in my upcoming posts. Then I’ll reveal my vision about the direction in which MSDK should develop.