writemsg_stdout("\n", noiselevel=-1)
else:
if use_locks and can_fetch:
+ waiting_msg = None
+ if "parallel-fetch" in features:
+ waiting_msg = ("Downloading '%s'... " + \
+ "see /var/log/emerge-fetch.log for details.") % myfile
if locks_in_subdir:
- file_lock = portage.locks.lockfile(mysettings["DISTDIR"]+"/"+locks_in_subdir+"/"+myfile,wantnewlockfile=1)
+ file_lock = portage.locks.lockfile(
+ os.path.join(mysettings["DISTDIR"],
+ locks_in_subdir, myfile), wantnewlockfile=1,
+ waiting_msg=waiting_msg)
else:
- file_lock = portage.locks.lockfile(mysettings["DISTDIR"]+"/"+myfile,wantnewlockfile=1)
+ file_lock = portage.locks.lockfile(
+ myfile_path, wantnewlockfile=1,
+ waiting_msg=waiting_msg)
try:
if not listonly:
if fsmirrors and not os.path.exists(myfile_path):
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
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: