|
Open Model Railroad Network (OpenMRN)
|
Go to the source code of this file.
Functions | |
| static void * | watchdog_thread (void *arg) |
| Thread running a watchdog. | |
| void | start_watchdog (int period_msec) |
| Starts a watchdog thread that must be reset more often than period_msec. | |
| void | reset_watchdog (void) |
| Resets the watchdog. | |
| void | add_watchdog_reset_timer (int period_msec) |
| Inserts a timer that will periodically reset the watchdog, thereby practically making the watchdog watch the timer thread. | |
Variables | |
| static int | watchdog_period_msec |
| What is the timeout of the watchdog in milliseconds. | |
| static int | watchdog_ticks = 0 |
| How many times have we seen the watchdog tick without being fed. | |
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Implements a simple software watchdog that runs a thread which terminates if the watchdog was not reset in the given period.
Definition in file watchdog.c.
| #define _DEFAULT_SOURCE |
Definition at line 36 of file watchdog.c.
| void add_watchdog_reset_timer | ( | int | period_msec | ) |
Inserts a timer that will periodically reset the watchdog, thereby practically making the watchdog watch the timer thread.
This makes it possible to add timers that watch other resources for not overflowing.
| period_msec | tells how often to reset the watchdog. |
Definition at line 93 of file watchdog.c.
| void reset_watchdog | ( | void | ) |
Resets the watchdog.
Definition at line 80 of file watchdog.c.
| void start_watchdog | ( | int | period_msec | ) |
Starts a watchdog thread that must be reset more often than period_msec.
Definition at line 67 of file watchdog.c.
|
static |
Thread running a watchdog.
Definition at line 50 of file watchdog.c.
|
static |
What is the timeout of the watchdog in milliseconds.
Definition at line 45 of file watchdog.c.
|
static |
How many times have we seen the watchdog tick without being fed.
Definition at line 47 of file watchdog.c.