equal
deleted
inserted
replaced
733 # implicit zombie filename blocking on a temporary name. |
733 # implicit zombie filename blocking on a temporary name. |
734 |
734 |
735 for tries in range(10): |
735 for tries in range(10): |
736 temp = b'%s-%08x' % (f, random.randint(0, 0xFFFFFFFF)) |
736 temp = b'%s-%08x' % (f, random.randint(0, 0xFFFFFFFF)) |
737 try: |
737 try: |
738 os.rename(f, temp) # raises OSError EEXIST if temp exists |
738 os.rename(f, temp) |
739 break |
739 break |
740 except OSError as e: |
740 except FileExistsError: |
741 if e.errno != errno.EEXIST: |
741 pass |
742 raise |
|
743 else: |
742 else: |
744 raise IOError(errno.EEXIST, "No usable temporary filename found") |
743 raise IOError(errno.EEXIST, "No usable temporary filename found") |
745 |
744 |
746 try: |
745 try: |
747 os.unlink(temp) |
746 os.unlink(temp) |