blob: cddba0100ef7a74b158838947d2cd2688be44503 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// license:BSD-3-Clause
// copyright-holders:Olivier Galibert, R. Belmont
#ifndef _watchdog_h_
#define _watchdog_h_
//============================================================
//
// watchdog.h - watchdog handling
//
// SDLMAME by Olivier Galibert and R. Belmont
//
//============================================================
#include "modules/sync/osdsync.h"
#include <atomic>
#include <thread>
class watchdog
{
public:
watchdog(void);
~watchdog(void);
void reset() { osd_event_set(m_event); }
osd_event * event(void) { return m_event; }
INT32 do_exit(void) { return m_do_exit; }
osd_ticks_t getTimeout(void) { return m_timeout; }
void setTimeout(int timeout);
private:
osd_event * m_event;
std::thread* m_thread;
std::atomic<INT32> m_do_exit;
osd_ticks_t m_timeout;
};
#endif
|