Atomic int64_t may cause "undefined reference to __sync_fetch_and_add_8"
linking errors, due to GCC bugs. Those errors can be fixed by building with
CXXFLAGS='-march=i586' but there is no reason to introduce that complexity
as 2^31 milliseconds is 35791 hours which is still plenty for our purposes.
typedef AtomicWord Rate; ///< pop()s per second
Rate rateLimit; ///< pop()s per second limit if positive
- typedef AtomicWordT<int64_t> AtomicSignedMsec;
+ // we need a signed atomic type because balance may get negative
+ typedef AtomicWordT<int> AtomicSignedMsec;
typedef AtomicSignedMsec Balance;
/// how far ahead the reader is compared to a perfect read/sec event rate
Balance balance;