Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: build/android/pylib/utils/watchdog_timer.py

Issue 683113005: Update from chromium https://crrev.com/302282 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/android/pylib/utils/timeout_retry.py ('k') | build/common.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """WatchdogTimer timeout objects.""" 5 """WatchdogTimer timeout objects."""
6 6
7 import time 7 import time
8 8
9 9
10 class WatchdogTimer(object): 10 class WatchdogTimer(object):
11 """A resetable timeout-based watchdog. 11 """A resetable timeout-based watchdog.
12 12
13 This object is threadsafe. 13 This object is threadsafe.
14 """ 14 """
15 15
16 def __init__(self, timeout): 16 def __init__(self, timeout):
17 """Initializes the watchdog. 17 """Initializes the watchdog.
18 18
19 Args: 19 Args:
20 timeout: The timeout in seconds. If timeout is None it will never timeout. 20 timeout: The timeout in seconds. If timeout is None it will never timeout.
21 """ 21 """
22 self._start_time = time.time() 22 self._start_time = time.time()
23 self._timeout = timeout 23 self._timeout = timeout
24 24
25 def Reset(self): 25 def Reset(self):
26 """Resets the timeout countdown.""" 26 """Resets the timeout countdown."""
27 self._start_time = time.time() 27 self._start_time = time.time()
28 28
29 def GetElapsed(self):
30 """Returns the elapsed time of the watchdog."""
31 return time.time() - self._start_time
32
33 def GetRemaining(self):
34 """Returns the remaining time of the watchdog."""
35 if self._timeout:
36 return self._timeout - self.GetElapsed()
37 else:
38 return None
39
29 def IsTimedOut(self): 40 def IsTimedOut(self):
30 """Whether the watchdog has timed out. 41 """Whether the watchdog has timed out.
31 42
32 Returns: 43 Returns:
33 True if the watchdog has timed out, False otherwise. 44 True if the watchdog has timed out, False otherwise.
34 """ 45 """
35 if self._timeout is None: 46 remaining = self.GetRemaining()
36 return False 47 return remaining is not None and remaining < 0
37 return time.time() - self._start_time > self._timeout
OLDNEW
« no previous file with comments | « build/android/pylib/utils/timeout_retry.py ('k') | build/common.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698