Как я могу избежать многопоточности, используя функцию опроса - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь вызвать функции после тайм-аута, и таймер должен работать в фоновом режиме, используя функцию опроса только в одном потоке

Я решил проблему, используя два потока, но я хочу сделать это, используя один поток

void *Start_Timer(void *)
{
    while(1)
    {
    struct pollfd fds[1];
    int ret,timeout=10;
    fds[0].fd=-1;
    fds[0].events=0;
    ret=poll(fds,1,timeout);
    if(ret==0)
    {
      callMe();
    }
    }

}
int main()
{
   pthread_t thread;
   pthread_create(&thread, NULL, &Start_Timer, NULL);
   int i=0;
   while(1)
   {
    long long  int time;
    int id;
     struct timeval start;
     cout<<"Enter timer in seconds and id \n";
     cin>>time>>id;
     gettimeofday(&start, NULL);
     time=time*1000;
     Details[i].timer=time;
     Details[i].id=id;
     i++;
     size=i;
   }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...