# OpenThreads

(So lightweight that it doesn't even have a fancy logo!)
Home Project Page Downloads Support Links
Nightly CVS Tarball

This library is intended to provide a minimal & complete Object-Oriented (OO) thread interface for C++ programmers. It is loosely modeled on the Java thread API, and the POSIX Threads standards. The architecture of the library is designed around "swappable" thread models which are defined at compile-time in a shared object library. It is of importance to note that while a factory pattern design could have been used to achieve the goal of genaric interface, it would have required the programmer to allocate each of the 4 fundemental types (Thread, Mutex, Barrier, & Condition ) on the heap. Due to the cost associated with heap allocation of the underlying concrete implementations of these constructs on some platforms, such allocation was deemed unacceptable at the time this library was originally written, and thus the factory pattern was not used.
Instead, a somewhat obtuse - but effective - technique was chosen to provide the necessary data/implementation hiding. This technique uses private void pointers to encapsulate object private data. The void pointers actually point at concrete data structures, but give a uniform interface to the dso.
It is the intent of the Open Thread Group that the interfaces (header files) will be used to construct optimized implementations using platform optimized multi-processing constructs such as the sproc methods used on IRIX & Windows (tm) threads on that Seattle based platform. There are currently concrete implementations using both POSIX and Mircrosoft Windows (tm) Threads in CVS.

### Latest News - 4.24.2005:

OpenThreads core CVS repositoy has been MOVED!

The CVS repository for OpenThreads is now on the openscenegraph.org server. You should discontinue using both the sourceforge version and the openscenegraph.org OpenThreadsUpdate version. Please do a fresh checkout of:

cvs -d :pserver:cvsguest@openscenegraph.org:/cvs/openthreads co OpenThreads

### 7.28.2003:

Open Scene Graph (OSG) v0.9.5 sync release now on sf.net downloads page.

### 7.20.2003:

Well gang, we're finally up and running on sourceforge!

### How you can contribute:

###

The OpenThreads library is currently pushing towards a stable 1.2 release. This release will entail POSIX and Windows (tm) Threads concrete implemetations. If you find bugs, please file them online here: Sourceforge OpenThreads bug tracking page. If you have patches, please send them to the maintainer: Sean Spicer (sspicer <at> users.sourceforge.net). Please note however, no patches will be accepted without a proper PGP signature, or being sent via secure email using PGP. A free pgp-like implementation can be found here: gnupg. The maintainers public key can be found either at keserver.net or at the mit public keyserver, by searching on "Sean Spicer". The proper keyID is: 15859D54, and the valid fingerprint is: 8CED 19B7 3A3A BF54 B8E8 FB11 E044 F6B8 1585 9D54.

This site graciously hosted by: