Meet B
Meet B

Reputation: 3

how to implement timer in C/C++

I want to call a function of the business class after every 2 hours. I m not getting any way to implement same in C/C++ without using a while loop. My problem is that i cannot use while(1) as this does not retun back the control for further execution.

Any pointer in this regards wud be helpful....:)

thnaks

Upvotes: 0

Views: 1886

Answers (3)

Björn Pollex
Björn Pollex

Reputation: 76866

Boost.Asio provides Timers.

Upvotes: 2

Vatine
Vatine

Reputation: 21288

In plain C, I would've considered using the alarm(2) or setitimer(2) functions. Alternatively, spawn a thread and do the waiting from there.

If you decide on the alarm or setitimer routes, bear in mind that you'll need to write signal handlers and may need a dispatch loop to note that it is time to do the periodic maintenance calls, as it's considered bad practise to do quite a few things from within a signal handler.

Upvotes: 0

BЈовић
BЈовић

Reputation: 64283

For a general solution, you could start a thread, which sends some message to the main thread after 2 hours.

For linux, you could use this:

http://linux.die.net/man/3/alarm

and then handle the SIGALRM signal

Upvotes: 0

Related Questions