Adjust AlarmSignal.unregister() call in ebuild-ipc.
authorZac Medico <zmedico@gentoo.org>
Sat, 4 Sep 2010 01:26:57 +0000 (18:26 -0700)
committerZac Medico <zmedico@gentoo.org>
Sat, 4 Sep 2010 01:26:57 +0000 (18:26 -0700)
bin/ebuild-ipc.py

index baa7abb4cbe5f76be5b0845315aca93295e33ea7..27fbf9714498018db8c7e40437b0f9e96a21af54 100755 (executable)
@@ -49,10 +49,14 @@ class EbuildIpc(object):
                start_time = time.time()
 
                try:
-                       portage.exception.AlarmSignal.register(
-                               self._COMMUNICATE_TIMEOUT_SECONDS)
-                       returncode = self._communicate(args)
-                       return returncode
+                       try:
+                               portage.exception.AlarmSignal.register(
+                                       self._COMMUNICATE_TIMEOUT_SECONDS)
+                               returncode = self._communicate(args)
+                               return returncode
+                       finally:
+                               portage.exception.AlarmSignal.unregister()
+                               portage.locks.unlockfile(lock_obj)
                except portage.exception.AlarmSignal:
                        time_elapsed = time.time() - start_time
                        portage.util.writemsg_level(
@@ -60,9 +64,6 @@ class EbuildIpc(object):
                                (time_elapsed,),
                                level=logging.ERROR, noiselevel=-1)
                        return 1
-               finally:
-                       portage.exception.AlarmSignal.unregister()
-                       portage.locks.unlockfile(lock_obj)
 
        def _communicate(self, args):
                input_fd = os.open(self.ipc_out_fifo, os.O_RDONLY|os.O_NONBLOCK)