summaryrefslogtreecommitdiff
path: root/rdiff-backup/rdiff_backup/Time.py
diff options
context:
space:
mode:
authorben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2002-07-16 05:16:42 +0000
committerben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2002-07-16 05:16:42 +0000
commit4c8440ee71ba819c7327913870a615186ef8d386 (patch)
tree5d4d811680e1b3fd0a3393de3d49eb9cae116481 /rdiff-backup/rdiff_backup/Time.py
parent6efc3610e37994c38a70cf32266e1e495035fbd3 (diff)
downloadrdiff-backup-4c8440ee71ba819c7327913870a615186ef8d386.tar.gz
Various changes to 0.9.3, see CHANGELOG
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@157 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/rdiff_backup/Time.py')
-rw-r--r--rdiff-backup/rdiff_backup/Time.py28
1 files changed, 23 insertions, 5 deletions
diff --git a/rdiff-backup/rdiff_backup/Time.py b/rdiff-backup/rdiff_backup/Time.py
index 6220514..90d3ae8 100644
--- a/rdiff-backup/rdiff_backup/Time.py
+++ b/rdiff-backup/rdiff_backup/Time.py
@@ -25,17 +25,18 @@ _genstr_date_regexp1 = re.compile("^(?P<year>[0-9]{4})[-/]"
_genstr_date_regexp2 = re.compile("^(?P<month>[0-9]{1,2})[-/]"
"(?P<day>[0-9]{1,2})[-/](?P<year>[0-9]{4})$")
curtime = curtimestr = None
+been_awake_since = None # stores last time sleep() was run
def setcurtime(curtime = None):
"""Sets the current time in curtime and curtimestr on all systems"""
t = curtime or time.time()
for conn in Globals.connections:
- conn.Time.setcurtime_local(t, timetostring(t))
+ conn.Time.setcurtime_local(t)
-def setcurtime_local(timeinseconds, timestr):
+def setcurtime_local(timeinseconds):
"""Only set the current time locally"""
global curtime, curtimestr
- curtime, curtimestr = timeinseconds, timestr
+ curtime, curtimestr = timeinseconds, timetostring(timeinseconds)
def setprevtime(timeinseconds):
"""Sets the previous inc time in prevtime and prevtimestr"""
@@ -168,6 +169,25 @@ def cmp(time1, time2):
elif time1 == time2: return 0
else: return 1
+
+def sleep(sleep_ratio):
+ """Sleep for period to maintain given sleep_ratio
+
+ On my system sleeping for periods less than 1/20th of a second
+ doesn't seem to work very accurately, so accumulate at least that
+ much time before sleeping.
+
+ """
+ global been_awake_since
+ if been_awake_since is None: # first running
+ been_awake_since = time.time()
+ else:
+ elapsed_time = time.time() - been_awake_since
+ sleep_time = elapsed_time * (sleep_ratio/(1-sleep_ratio))
+ if sleep_time >= 0.05:
+ time.sleep(sleep_time)
+ been_awake_since = time.time()
+
def genstrtotime(timestr, curtime = None):
"""Convert a generic time string to a time in seconds"""
if curtime is None: curtime = globals()['curtime']
@@ -203,5 +223,3 @@ the day).""" % timestr)
t = stringtotime(timestr)
if t: return t
else: error()
-
-