summaryrefslogtreecommitdiffstats
path: root/pym/portage/locks.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/portage/locks.py')
-rw-r--r--pym/portage/locks.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/pym/portage/locks.py b/pym/portage/locks.py
index 3def88a38..cbf7ee4b5 100644
--- a/pym/portage/locks.py
+++ b/pym/portage/locks.py
@@ -17,7 +17,7 @@ def lockdir(mydir):
def unlockdir(mylock):
return unlockfile(mylock)
-def lockfile(mypath,wantnewlockfile=0,unlinkfile=0):
+def lockfile(mypath, wantnewlockfile=0, unlinkfile=0, waiting_msg=None):
"""Creates all dirs upto, the given dir. Creates a lockfile
for the given directory as the file: directoryname+'.portage_lockfile'."""
import fcntl
@@ -76,10 +76,13 @@ def lockfile(mypath,wantnewlockfile=0,unlinkfile=0):
raise
if e.errno == errno.EAGAIN:
# resource temp unavailable; eg, someone beat us to the lock.
- if type(mypath) == types.IntType:
- print "waiting for lock on fd %i" % myfd
- else:
- print "waiting for lock on %s" % lockfilename
+ if waiting_msg is None:
+ if isinstance(mypath, int):
+ print "waiting for lock on fd %i" % myfd
+ else:
+ print "waiting for lock on %s" % lockfilename
+ elif waiting_msg:
+ print waiting_msg
# try for the exclusive lock now.
fcntl.lockf(myfd,fcntl.LOCK_EX)
elif e.errno == errno.ENOLCK: