Can we assume that b.remaining will represent the actual remaining buckets. What if some other machine has been adding lots of tokens to the bucket while we were not looking?