- add sources.
[platform/framework/web/crosswalk.git] / src / build / android / pylib / utils / watchdog_timer.py
1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 """WatchdogTimer timeout objects."""
6
7 import time
8
9
10 class WatchdogTimer(object):
11   """A resetable timeout-based watchdog.
12
13   This object is threadsafe.
14   """
15
16   def __init__(self, timeout):
17     """Initializes the watchdog.
18
19     Args:
20       timeout: The timeout in seconds. If timeout is None it will never timeout.
21     """
22     self._start_time = time.time()
23     self._timeout = timeout
24
25   def Reset(self):
26     """Resets the timeout countdown."""
27     self._start_time = time.time()
28
29   def IsTimedOut(self):
30     """Whether the watchdog has timed out.
31
32     Returns:
33       True if the watchdog has timed out, False otherwise.
34     """
35     if self._timeout is None:
36       return False
37     return time.time() - self._start_time > self._timeout