Как я могу создать сторожевой таймер, используя c ++ и boost - PullRequest
0 голосов
/ 05 апреля 2011

Каков наилучший и самый короткий способ создания класса WatchDogTimer, который может подождать некоторое время, а затем умереть?

Так что, когда я делаю что-то вроде

WatchDogTimer wdt (10);

wdt будет доступно только в следующие 10 секунд.

Как я могу это сделать?

пс: да, я видел эту ветку , но на самом деле это не помогло.

1 Ответ

1 голос
/ 05 апреля 2011

Создайте объект в куче с помощью new и передайте его shared_ptr. Затем удерживайте этот общий указатель только из потока, который спит в течение 10 секунд перед выходом. Убедитесь, что поток является единственным экземпляром shared_ptr, а все остальные ссылки - weak_ptr s. Через 10 секунд weak_ptr::get() вернет ноль.

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