1*99451b44SJordan Rupprecht #include <stdio.h> 2*99451b44SJordan Rupprecht #include <stdint.h> 3*99451b44SJordan Rupprecht 4*99451b44SJordan Rupprecht #include <chrono> 5*99451b44SJordan Rupprecht #include <thread> 6*99451b44SJordan Rupprecht 7*99451b44SJordan Rupprecht 8*99451b44SJordan Rupprecht int wait_a_while(int microseconds)9*99451b44SJordan Rupprechtwait_a_while (int microseconds) 10*99451b44SJordan Rupprecht { 11*99451b44SJordan Rupprecht int num_times = 0; 12*99451b44SJordan Rupprecht auto end_time = std::chrono::system_clock::now() + std::chrono::microseconds(microseconds); 13*99451b44SJordan Rupprecht 14*99451b44SJordan Rupprecht while (1) 15*99451b44SJordan Rupprecht { 16*99451b44SJordan Rupprecht num_times++; 17*99451b44SJordan Rupprecht auto wait_time = end_time - std::chrono::system_clock::now(); 18*99451b44SJordan Rupprecht 19*99451b44SJordan Rupprecht std::this_thread::sleep_for(wait_time); 20*99451b44SJordan Rupprecht if (std::chrono::system_clock::now() > end_time) 21*99451b44SJordan Rupprecht break; 22*99451b44SJordan Rupprecht } 23*99451b44SJordan Rupprecht return num_times; 24*99451b44SJordan Rupprecht } 25*99451b44SJordan Rupprecht 26*99451b44SJordan Rupprecht int main(int argc,char ** argv)27*99451b44SJordan Rupprechtmain (int argc, char **argv) 28*99451b44SJordan Rupprecht { 29*99451b44SJordan Rupprecht printf ("stop here in main.\n"); 30*99451b44SJordan Rupprecht int num_times = wait_a_while (argc * 1000); 31*99451b44SJordan Rupprecht printf ("Done, took %d times.\n", num_times); 32*99451b44SJordan Rupprecht 33*99451b44SJordan Rupprecht return 0; 34*99451b44SJordan Rupprecht 35*99451b44SJordan Rupprecht } 36