jweinst1
12/5/2018 - 11:49 PM

example sleep calculation

example sleep calculation

#include <iostream>

int main() {
  unsigned sleep_per_bucket = 67;
  double result = 20000 * (static_cast<double>(sleep_per_bucket) / static_cast<double>(1000));
  unsigned sleepable = static_cast<unsigned>(result);
  std::cout << "Sleepable for =" << sleepable << std::endl;
  while(sleepable)
  {
    unsigned sleptFor = 0;
    if(sleepable >= 1000) {
      sleepable -= 1000;
      sleptFor = 1000;
    } else {
      sleptFor = sleepable;
      sleepable = 0;
    }
    std::cout << "slept for ms=" 
    << sleptFor
    << ", remaining ms=" << sleepable
    << std::endl;
  }
}
/*
Sleepable for =1340
slept for ms=1000, remaining ms=340
slept for ms=340, remaining ms=0
*/