Guard against negative time deltas
authorJay Doane <jaydoane@apache.org>
Tue, 5 Apr 2022 19:48:10 +0000 (12:48 -0700)
committerJay Doane <jaydoane@apache.org>
Tue, 5 Apr 2022 19:48:10 +0000 (12:48 -0700)
commit7c6cd10040db2b11adde2232512adec1f6842404
tree440818a5ce500254a27c42f858a41f410df6429c
parenta91feeaa5cd092d9192a94f2fdd3996d6fc889d4
Guard against negative time deltas

Despite the use of `erlang:monotonic_time/0`, it is still possible on
some platforms, such as sleeping/awakening laptops, for time to move
in surprising directions. When this happens, and a negative time delta
is passed to `timebin/1`, it crashes with:

bad arithmetic expression at math:log10/1 <= ioq_server:timebin/1(line:480)

This adds a guard to return `0` for negative numbers as well as zero.
src/ioq_server.erl