From 0964d05f4a513c07a3ee84b742ac486c86700056 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 10 Jan 2009 19:07:58 +0000 Subject: =?UTF-8?q?Use=20ebegin/eend=20to=20indicate=20when=20waiting=20fo?= =?UTF-8?q?r=20a=20lock=20and=20when=20it's=20acquired.=20Thanks=20to=20Pe?= =?UTF-8?q?tteri=20R=C3=A4ty=20=20for=20the=20suggestion.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/main/trunk/; revision=12415 --- pym/portage/locks.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'pym/portage/locks.py') diff --git a/pym/portage/locks.py b/pym/portage/locks.py index fc8779285..f557d8096 100644 --- a/pym/portage/locks.py +++ b/pym/portage/locks.py @@ -11,6 +11,7 @@ import errno, os, stat, time, types from portage.exception import DirectoryNotFound, FileNotFound, \ InvalidData, TryAgain from portage.data import portage_gid +from portage.output import EOutput from portage.util import writemsg from portage.localization import _ @@ -92,19 +93,21 @@ def lockfile(mypath, wantnewlockfile=0, unlinkfile=0, raise TryAgain(mypath) global _quiet - if _quiet: - pass - elif waiting_msg is None: + out = EOutput() + out.quiet = _quiet + if waiting_msg is None: if isinstance(mypath, int): - writemsg("waiting for lock on fd %i\n" % myfd, - noiselevel=-1) + waiting_msg = "waiting for lock on fd %i" % myfd else: - writemsg("waiting for lock on %s\n" % lockfilename, - noiselevel=-1) - elif waiting_msg: - writemsg(waiting_msg + "\n", noiselevel=-1) + waiting_msg = "waiting for lock on %s\n" % lockfilename + out.ebegin(waiting_msg) # try for the exclusive lock now. - fcntl.lockf(myfd,fcntl.LOCK_EX) + try: + fcntl.lockf(myfd, fcntl.LOCK_EX) + except EnvironmentError, e: + out.eend(1, str(e)) + raise + out.eend(os.EX_OK) elif e.errno == errno.ENOLCK: # We're not allowed to lock on this FS. os.close(myfd) -- cgit v1.2.3-1-g7c22