Welcome to Lunchbox, a C++ library for multi-threaded programming. This is the
initial release of Lunchbox, formerly part of the Collage network library.
Lunchbox 1.4 is a feature release based on the 1.0 co::base API. It is
intended for all application developers creating high-preformance
multi-threaded programs. Lunchbox 1.4 can be retrieved by downloading the
code or one of the
Lunchbox provides the following major features to facilitate the development
and deployment of multi-threaded applications:
- OS Abstraction: Utility classes abstracting common operating
systems features, e.g., threads, locks, memory maps, shared library loading
and condition variables.
- High-Performance Primitives: Thread-safe utilities tuned for
performance, e.g., atomic variables, spin locks and lock-free
- Utility classes: Helper primitives which are not in the standard
library, e.g., logging, pools and random number generation.
2. New in this release
Lunchbox 1.4 contains the following features, enhancements, bug fixes
and documentation changes over the co::base functionality found in Equalizer
2.1. New Features
- Servus, A simple C++ interface to announce, discover and iterate over
key-value pairs stored in a zeroconf service description
- LFVector, a thread-safe, lock-free vector
- Configurable maximum size for MTQueue
- Random access to MTQueue elements
- Monitor::timedWaitNE() method
- Implement backtrace() for Win32
- Create uint128_t using the MD5 hash of a given string
The following documentation has been added or substantially improved since the
2.5. Bug Fixes
Lunchbox 1.4 includes various bugfixes over the Equalizer 1.2.1 release,
including the following:
sleep is not signal-safe
- MTQueue thread-safety fixes
2.6. Known Bugs
The following bugs were known at release time. Please file a
Bug Report if you
find any other issue with this release.
Monitor: race for non-atomic reads
Servus: add keys after discover fails on Darwin
Lunchbox is a cross-platform library, designed to run on any modern operating
system, including all Unix variants and the Windows operating system.
3.1. Operating System Support
Lunchbox uses CMake to create a platform-specific build environment. The
following platforms and build environments are tested:
- Linux: Ubuntu 11.10, 12.04, RHEL 6.1 (Makefile, i386, x64)
- Windows: 7 (Visual Studio 2008, i386, x64)
- Mac OS X: 10.7 (Makefile, XCode, i386, x64)
documentation can be found on
eyescale.github.com. As with any
open source project, the available source code, in particular the
provide a reference for developing applications.
Technical questions can be posted to the Equalizer
Developer Mailing List, or directly to
Commercial support, custom software development and porting services are
available from Eyescale. Please contact
for further information.