Advertisement
Guest User

Untitled

a guest
May 9th, 2016
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.65 KB | None | 0 0
  1. #include <fir/time/interval_meter.h>
  2. #include <pthread.h>
  3. #include <semaphore.h>
  4. #include <unistd.h>
  5.  
  6. struct Sync {
  7.     sem_t sem_;
  8.     Sync() {
  9.         sem_init(&sem_, 0, 0);
  10.     }
  11. };
  12.  
  13.  
  14. void* thread_measure(void*p) {
  15.     Sync *s = (Sync*)p;
  16.  
  17.     fir::time::IntervalMeter imeter;
  18.  
  19.     while(1) {
  20.  
  21.         sem_wait(&s->sem_);
  22.         auto ms = imeter.getMs();
  23.         if ( ms > (((1000000/30))/1000) ) {
  24.             std::cout << "ms " << ms;
  25.         }
  26.     }
  27.  
  28.     return nullptr;
  29. }
  30.  
  31.  
  32. int main(void) {
  33.     Sync sync;
  34.     pthread_t thread_id;
  35.     pthread_create(&thread_id, nullptr, thread_measure, &sync);
  36.  
  37.     // thread ticks
  38.     while(1) {
  39.         usleep(1000000/30);
  40.         sem_post(&sync.sem_);
  41.     }
  42.  
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement