blob: 415c12698827136ae604145fe3692cbe64f5c918 (
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 "osdsync.h"
#include <atomic>
#include <thread>
class osd_watchdog
{
public:
osd_watchdog(void);
~osd_watchdog(void);
void reset() { m_event.set(); }
osd_event & event(void) { return m_event; }
INT32 do_exit(void) const { return m_do_exit; }
osd_ticks_t getTimeout(void) const { 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
|