| Index: pym/portage/util/env_update.py
|
| diff --git a/pym/portage/util/env_update.py b/pym/portage/util/env_update.py
|
| index 68531da59bc43feb3f1935d159b4d0f40da1c45e..e2cb97f02ab38c152c8402b284bc1573a3faaf69 100644
|
| --- a/pym/portage/util/env_update.py
|
| +++ b/pym/portage/util/env_update.py
|
| @@ -181,11 +181,6 @@ def env_update(makelinks=1, target_root=None, prev_mtimes=None, contents=None,
|
| newprelink.write("-b %s\n" % (x,))
|
| newprelink.close()
|
|
|
| - # Portage stores mtimes with 1 second granularity but in >=python-2.5 finer
|
| - # granularity is possible. In order to avoid the potential ambiguity of
|
| - # mtimes that differ by less than 1 second, sleep here if any of the
|
| - # directories have been modified during the current second.
|
| - sleep_for_mtime_granularity = False
|
| current_time = long(time.time())
|
| mtime_changed = False
|
| lib_dirs = set()
|
| @@ -205,8 +200,13 @@ def env_update(makelinks=1, target_root=None, prev_mtimes=None, contents=None,
|
| continue
|
| raise
|
| if newldpathtime == current_time:
|
| - sleep_for_mtime_granularity = True
|
| - if x in prev_mtimes:
|
| + # Reset mtime to avoid the potential ambiguity of times that
|
| + # differ by less than 1 second.
|
| + newldpathtime -= 1
|
| + os.utime(x, (newldpathtime, newldpathtime))
|
| + prev_mtimes[x] = newldpathtime
|
| + mtime_changed = True
|
| + elif x in prev_mtimes:
|
| if prev_mtimes[x] == newldpathtime:
|
| pass
|
| else:
|
| @@ -287,7 +287,3 @@ def env_update(makelinks=1, target_root=None, prev_mtimes=None, contents=None,
|
| for x in env_keys:
|
| outfile.write("setenv %s '%s'\n" % (x, env[x]))
|
| outfile.close()
|
| -
|
| - if sleep_for_mtime_granularity:
|
| - while current_time == long(time.time()):
|
| - time.sleep(1)
|
|
|