Skip to content
/ Lunchbox Public
forked from Eyescale/Lunchbox

Your toolbox, since the free lunch is over: a C++ library for multi-threaded programming

License

Notifications You must be signed in to change notification settings

VMML/Lunchbox

 
 

Repository files navigation

[TOC]

Introduction {#Introduction}

Welcome to Lunchbox, a C++ library for multi-threaded programming. Lunchbox was formerly known as eq::base or co::base, the foundation for the Equalizer parallel rendering framework and the Collage network library. It is intended for all application developers creating high-performance multi-threaded programs.

The API documentation can be found on eyescale.github.io. As with any open source project, the available source code, in particular the unit tests provide a reference for developing applications.

Technical questions can be posted to the Equalizer Developer Mailing List, or directly to info@equalizergraphics.com.

Commercial support, custom software development and porting services are available from Eyescale. Please contact info@eyescale.ch for further information.

Features {#Features}

Lunchbox provides the following major features to facilitate the development and deployment of multi-threaded applications:

  • Operating System Abstraction: lunchbox::Atomic, lunchbox::Condition, lunchbox::DSO, @ref bitops "bit operations", lunchbox::daemonize(), (lunchbox::Clock, lunchbox::MemoryMap, lunchbox::PerThread, lunchbox::RNG, lunchbox::Thread)
  • High-Performance Threading Primitives: lunchbox::Buffer, lunchbox::LFQueue, lunchbox::LFVector, lunchbox::Monitor, lunchbox::MTQueue, lunchbox::RequestHandler, lunchbox::SpinLock, (lunchbox::Lock, lunchbox::TimedLock)
  • Utility classes: lunchbox::Any, lunchbox::Log, lunchbox::Pool, lunchbox::UnorderedIntervalSet, lunchbox::Future, lunchbox::PersistentMap, (lunchbox::ScopedMutex)
  • Detailed @ref Changelog

Building {#Building}

Lunchbox is a cross-platform library, designed to run on any modern operating system, including all Unix variants and the Windows operating system. Lunchbox uses CMake to create a platform-specific build environment. The following platforms and build environments are tested:

  • Linux: Ubuntu 14.04, RHEL 6.6 (Makefile, Ninja)
  • Windows: 7 (Visual Studio 2012)
  • Mac OS X: 10.8 (Makefile, Ninja)

Building from source is as simple as:

git clone https://github.com/Eyescale/Lunchbox.git
mkdir Lunchbox/build
cd Lunchbox/build
cmake ..
make

About

Your toolbox, since the free lunch is over: a C++ library for multi-threaded programming

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 95.0%
  • CMake 4.1%
  • C 0.9%