The Kent C++CSP Library


A Multi-Award Winning Concurrency Library for Microsoft Windows and Linux


Introduction This is the homepage for the Kent C++CSP library, a highly-portable but very fast C++ library that implements the ideas proposed by CSP. It is akin to a port of JCSP but with speed not far off that of KRoC.

The library was developed as a final year BSc project but has now been developed further and is released under the auspices of the University of Kent, whose Computer Science department is well known for its excellent work in the field of CSP.

Introduction
Details The library is written entirely in C++, and can run using Windows Fibers, setjmp/longjmp on Intel x86 machines or using the very portable GNU pth library. It uses a many-to-many threading model -- usually processes are run together in the same thread, cooperatively multitasking, but there is also the capability to start separate kernels in new threads and still communicate using special inter-thread channels.

It is licenced under the GNU LGPL and is in active development. The current maintainer is the original author, Neil Brown. The project was developed under the supervision of P.H. Welch.


Details
Features
  • All common CSP features -- processes, shared/buffered/normal channels, sequential and parallel capabilities, ALTs, buckets, barriers, timeouts and more
  • Cooperative multitasking to allow for ultra-fast performance
  • Networked additions allow for transparent networking of CSP channels
  • An easy to use API, derived from that of JCSP, with Javadoc-like reference documentation
  • Easy inter-operability with KRoC


Features
Download Version 1.3.2 (source code, released under the GNU LGPL)

The md5sum for cppcsp-1.3.2.tar.gz

Version 1.3.2 documentation (HTML tree, gzipped)

Download


Documentation The documentation, as generated from the source header files, is available on-line here. Sample programs are also provided in the source distribution, and may help you get started. Do not hesitate to e-mail any enquiries/problems to the maintainer.


Documentation
Compatibility C++CSP aims to be as portable as possible. To this end, instead of listing systems that the library works on, a list is provided of known incompatible systems, with the hope of keeping it as short as possible. Please e-mail if you have any problems with the library, or wish to port it to new platforms (e.g. for embedded applications). It is preferred that all ports be included in the original library rather than be tacked on by individual users.
  • Microsoft Windows 95, NT SP2 and earlier -- Fibers feature not present



Compatibility
Awards C++CSP has already won two awards; the University of Kent Computer Science Project Prize for the best project and presentation in Computer Science, and the Communicating Process Architectures 2003 Conference award for the Best Student Paper. Awards



This page (c) copyright Neil Brown, 2003-4.