#include <iostream>
#include <functional>
#include <thread>
using namespace std;
void timer_start(function<void(void)> func, unsigned int interval)
{
thread([func, interval]() {
while (true)
{
func();
this_thread::sleep_for(chrono::milliseconds(interval));
}
}).detach();
}
void produktion()
{
cout << "tick" << endl;
}
int main() {
timer_start(produktion, 100);
this_thread::sleep_for(chrono::milliseconds(1000));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPHRocmVhZD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgdGltZXJfc3RhcnQoZnVuY3Rpb248dm9pZCh2b2lkKT4gZnVuYywgdW5zaWduZWQgaW50IGludGVydmFsKQp7CiAgICB0aHJlYWQoW2Z1bmMsIGludGVydmFsXSgpIHsKICAgICAgICB3aGlsZSAodHJ1ZSkKICAgICAgICB7CiAgICAgICAgICAgIGZ1bmMoKTsKICAgICAgICAgICAgdGhpc190aHJlYWQ6OnNsZWVwX2ZvcihjaHJvbm86Om1pbGxpc2Vjb25kcyhpbnRlcnZhbCkpOwogICAgICAgIH0KICAgIH0pLmRldGFjaCgpOwp9ICAKCnZvaWQgcHJvZHVrdGlvbigpCnsKCWNvdXQgPDwgInRpY2siIDw8IGVuZGw7Cn0KCmludCBtYWluKCkgewoKICAgIHRpbWVyX3N0YXJ0KHByb2R1a3Rpb24sIDEwMCk7CgogICB0aGlzX3RocmVhZDo6c2xlZXBfZm9yKGNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMDApKTsKICAgIHJldHVybiAwOwp9ICA=