reactor/reactor — pull request #280 by ifesdjeen (2014-02-05 21:30:38+00:00)
Title: This commit adds a Timer interface implemented by HashWheelTimer

HashWheelTimer itself is implemented as per the "Hashed and Hierarchical
Timing Wheels" paper: http://www.cs.columbia.edu/~nahum/w6998/papers/sosp87-timing-wheels.pdf

This implementation doesn't involve hierarchical Timing Wheels.

This implementation provides three types of wait strategies:

* Sleep: least precise, but most scheduler-friendly, uses
`Thread.sleep` under the hood.
* Yielding: more precise, and scheduler firendly, uses `Thread.yield`
under the hood.
* BusySpin: most precise, least scheduler friendly, doesn't release
flow control, therefore occupies an entire core on multi-core
systems.

Executors are configurable through the constructor. By default, single
threaded executor is used.

Loop thread name is configurable through the constructor.