Don't use try/finally to close atomic_ofstream since we don't want to
authorZac Medico <zmedico@gentoo.org>
Thu, 8 May 2008 10:34:52 +0000 (10:34 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 8 May 2008 10:34:52 +0000 (10:34 -0000)
call close() on this stream if an error occurs. (trunk r10231)

svn path=/main/branches/2.1.2/; revision=10232

pym/portage.py

index 8d08ad53b09c3fd4e77f4d2d64a88f0ba2051d72..944499838a7192e7be9819e6f67f875a2242ec6e 100644 (file)
@@ -9610,24 +9610,22 @@ class dblink:
                        for filename in collisions:
                                del blocker_contents[filename]
                        f = atomic_ofstream(os.path.join(blocker.dbdir, "CONTENTS"))
-                       try:
-                               for filename in sorted(blocker_contents):
-                                       entry_data = blocker_contents[filename]
-                                       entry_type = entry_data[0]
-                                       relative_filename = filename[destroot_len:]
-                                       if entry_type == "obj":
-                                               entry_type, mtime, md5sum = entry_data
-                                               line = "%s %s %s %s\n" % \
-                                                       (entry_type, relative_filename, md5sum, mtime)
-                                       elif entry_type == "sym":
-                                               entry_type, mtime, link = entry_data
-                                               line = "%s %s -> %s %s\n" % \
-                                                       (entry_type, relative_filename, link, mtime)
-                                       else: # dir, dev, fif
-                                               line = "%s %s\n" % (entry_type, relative_filename)
-                                       f.write(line)
-                       finally:
-                               f.close()
+                       for filename in sorted(blocker_contents):
+                               entry_data = blocker_contents[filename]
+                               entry_type = entry_data[0]
+                               relative_filename = filename[destroot_len:]
+                               if entry_type == "obj":
+                                       entry_type, mtime, md5sum = entry_data
+                                       line = "%s %s %s %s\n" % \
+                                               (entry_type, relative_filename, md5sum, mtime)
+                               elif entry_type == "sym":
+                                       entry_type, mtime, link = entry_data
+                                       line = "%s %s -> %s %s\n" % \
+                                               (entry_type, relative_filename, link, mtime)
+                               else: # dir, dev, fif
+                                       line = "%s %s\n" % (entry_type, relative_filename)
+                               f.write(line)
+                       f.close()
 
                # Due to mtime granularity, mtime checks do not always properly
                # invalidate vardbapi caches.