A port of disruptor to C++.
The (incomplete) goal of this port is to replicate the functionality of Disruptor as faithfully as possible. The code structure is nearly identical, as is the behavior, and some of the documentation within the code has been copied verbatim. For these reasons (and because it's a fine choice) the Apache License 2.0 has been selected.
Requires C++0x/C++11 support. Checks run successfully with GCC 4.6 and 4.7 (-std=c++0x).
Building and running the tests requires gtest (libgtest and libgtest_main).
./autogen.sh && ./configure && make check
9 of 16 unit tests are complete. These tests cover most of the core functionality (see TODO).
None of the performance tests are complete.
I expect problems related to my interpretation and usage of the C++ atomic types and associated functions. For example, the intended behavior (as intended by Disruptor implementation) vs. actual behavior of compare_exchange_strong within Sequence I do not yet fully understand, and therefore have not vetted.
In other words, there be demons.
Not yet defined.
perf tests incomplete.
"... banned ... due to its vicious nature"
http://en.memory-alpha.org/wiki/Varon-T_disruptor
Disruptor "... was so named because it had elements of similarity for dealing with graphs of dependencies to the concept of "Phasers" in Java 7". The name Varon-T was selected as a continuation of this theme.