diff options
-rwxr-xr-x | build/extract_from_cab.py | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/build/extract_from_cab.py b/build/extract_from_cab.py index 278c657..d04bcfd 100755 --- a/build/extract_from_cab.py +++ b/build/extract_from_cab.py @@ -12,6 +12,7 @@ import tempfile lock_file = os.path.join(tempfile.gettempdir(), 'expand.lock') + def acquire_lock(): while True: try: @@ -20,13 +21,15 @@ def acquire_lock(): except OSError as e: if e.errno != errno.EEXIST: raise - print 'Cab extraction could not get exclusive lock. Retrying in 1 sec...' - time.sleep(1000) + print 'Cab extraction could not get exclusive lock. Retrying in 100ms...' + time.sleep(0.1) + def release_lock(fd): os.close(fd) os.unlink(lock_file) + def main(): if len(sys.argv) != 4: print 'Usage: extract_from_cab.py cab_path archived_file output_dir' @@ -40,13 +43,7 @@ def main(): level = subprocess.call( ['expand', cab_path, '-F:' + archived_file, output_dir]) if level != 0: - print 'Cab extraction(%s, %s, %s) failed.' % ( - cab_path, archived_file, output_dir) - print 'Trying a second time.' - level = subprocess.call( - ['expand', cab_path, '-F:' + archived_file, output_dir]) - if level != 0: - return level + return level finally: release_lock(lock_fd) |