diff options
author | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-07-16 05:16:42 +0000 |
---|---|---|
committer | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-07-16 05:16:42 +0000 |
commit | 4c8440ee71ba819c7327913870a615186ef8d386 (patch) | |
tree | 5d4d811680e1b3fd0a3393de3d49eb9cae116481 /rdiff-backup/rdiff_backup/Time.py | |
parent | 6efc3610e37994c38a70cf32266e1e495035fbd3 (diff) | |
download | rdiff-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.py | 28 |
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() - - |