summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/Scheduler.py
Commit message (Collapse)AuthorAgeFilesLines
...
* Tweak the last commit.Zac Medico2011-11-171-11/+2
|
* Skip the "resume after portage update" routine.Zac Medico2011-11-171-105/+38
| | | | | | | Instead, finish the whole job using a copy of the currently running instance. This allows us to avoid the complexities of emerge --resume, such as the differences in option handling between different portage versions, as reported in bug #390819.
* pkg_pretend: handle interruption morev2.2.0_alpha75Zac Medico2011-11-161-0/+6
|
* pkg_pretend: tweak final cleanup logicZac Medico2011-11-161-11/+9
| | | | | This ensures that the clean phase will not run if the user interrupts emerge before the build dir is locked.
* Scheduler.py: remove unused vars (pyflakes)Zac Medico2011-11-161-8/+0
|
* Tweak emerge --quiet-build default handling.Zac Medico2011-11-161-1/+1
| | | | | Since --quiet-build is enabled be default, there's no need to have it in the options dict except when it is enabled.
* pkg_pretend: lock before unpacking binpkg xpakZac Medico2011-11-161-17/+20
| | | | This fixes a regression from the previous commit.
* pkg_pretend: clean first for bug #390711Zac Medico2011-11-161-13/+33
|
* fix previous commit to call ensure_dirsZac Medico2011-10-271-1/+2
|
* Run pkg_pretend in PORTAGE_TMPDIR for bug #388593Zac Medico2011-10-271-1/+2
|
* Use EROOT instead of ROOT for keys everywhere.Zac Medico2011-10-251-7/+4
| | | | | | | | | | It makes more sense to use EROOT instead of ROOT for keys in mappings like portage.db, since it allows for multiple prefixes to exist simultaneously within the same map without having a key collision. This affects all portageq commands which take a <root> parameter, since that parameter now corresponds to EROOT instead of ROOT. None of this makes any difference for non-prefix users, since EROOT and ROOT are identical when EPREFIX is empty.
* Add --binpkg-exclude optionSebastian Luther2011-10-161-1/+6
| | | | | This options disables creation of binary packages, no matter what enabled it in the first place. See bug 386903.
* Scheduler: fix myopts typo from last commitZac Medico2011-10-101-1/+1
|
* Add emerge --dynamic-deps <y|n> option.Zac Medico2011-10-101-1/+2
| | | | | | | | | | | | | This makes it possible to disable the dynamic dependency updates that FakeVartree performs by default. WARNING: If --dynamic-deps is disabled, then it is necessary to ensure that an alternative method is used to handle package moves in dependencies of installed packages. Normally, this is handled by FEATURES="fixpackages", which is enabled by default and may be disabled via make.conf(5). Alternatively, in order to manually apply package moves, run `emaint --fix moveinst` after each emerge --sync operation (see emaint(1)).
* Fix "ResourceWarning: unclosed file" with Python 3.2.Arfrever Frehtes Taifersar Arahesis2011-08-271-1/+1
|
* python3.2 fixes: ResourceWarning: unclosed fileZac Medico2011-08-241-0/+4
|
* Scheduler: fix parallel-fetch order with --jobs=1Zac Medico2011-08-021-0/+7
| | | | | | This avoids a case where the first prefetcher is discarded, causing the second prefetcher to occupy the fetch queue before the first fetcher has an opportunity to execute.
* Scheduler: fix _running_tasks for uninstallsv2.2.0_alpha46Zac Medico2011-07-191-1/+3
|
* Scheduler: simplify _terminate_tasksZac Medico2011-07-181-19/+8
| | | | | | This should also fix bugs related to CompositeTask instances waiting for queued tasks to start and not being properly terminated in this case.
* Scheduler: allow concurrent fetch with --jobs > 1Zac Medico2011-07-171-3/+12
| | | | | | | This reverts behavior from bug #375331 (commit f07f8386e945b48358c11c121960e4833c539752) for cases in which --jobs is greater than 1. We can add a separate --fetch-jobs option later, but for now, this preserves previous behavior for --jobs > 1.
* Scheduler: enable prefetch for first packageZac Medico2011-07-161-4/+1
| | | | | | Since commit f07f8386e945b48358c11c121960e4833c539752, the first will have to wait for later ones to fetch unless we start its prefetcher first.
* Remove python-2.6 StringIO.StringIO fallback.Zac Medico2011-07-121-1/+0
| | | | | | | | Since the io module in python-2.6 was broken when threading was disabled, we needed to fall back from io.StringIO to StringIO.StringIO in this case (typically just for Gentoo's stage1 and stage2 tarballs). Now that python-2.7 is stable in stages and we rely on io.open() being available, we can also rely on io.StringIO being available.
* Scheduler: make --fetchonly skip pkg_pretendZac Medico2011-06-131-3/+4
|
* Scheduler: init _fetch_log in constructorZac Medico2011-06-051-3/+4
| | | | This ensures that we account for EMERGE_LOG_DIR.
* dblink.merge: remove unused scheduler callbacksZac Medico2011-06-031-67/+1
|
* Package: add new _gen_hash_key methodZac Medico2011-05-221-20/+4
|
* merge_wait_queue: use deque.clear()Zac Medico2011-05-081-1/+1
|
* Be careful with system pkgs + parallel-install.Zac Medico2011-05-071-10/+18
| | | | | This should prevent FEATURES=parallel-install from interfering with the fixes from bug #256616 and bug #259954.
* Scheduler: add queue for ebuild-locksZac Medico2011-05-071-2/+11
| | | | | | | | Use a separate queue for ebuild-locks when the merge queue allows more than 1 job (due to parallel-install), since the portage.locks module does not behave as desired if we try to lock the same file multiple times concurrently from the same process.
* Add FEATURES=parallel-install for finer locks.Zac Medico2011-05-071-1/+2
|
* Use finer grained locks for install.David James2011-05-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Narrow scope of merge locks to improve performance. Instead of locking the DB for the entire package merge, just lock it when we actually need to do so. Also add locks around conf_mem_file updating and pkg_* phases. Locking in pkg_* phases can be turned off with FEATURES="no-ebuild-locks" if you use ebuilds that are careful not to mess with each other during theses phases. The default is to leave this locking enabled. Given this new locking, I've improved the scheduler to run merge jobs in parallel. Time required for merging 348 packages with --usepkgonly: - Before patch: 29m50s - After patch: 10m2s - After patch w/o locks: 7m9s Change-Id: I63588c4cc59fa6fe2f8327ea1e4a9e71b241d4fe Review URL: http://gerrit.chromium.org/gerrit/498
* depgraph: migrate implicit libc deps from SchedZac Medico2011-04-301-65/+0
| | | | | Now all the virtual/libc handling is done by the depgraph, which will be helpful when fixing bug #364681.
* Remove unnecessary sync in Scheduler.py.David James2011-04-111-1/+1
| | | | | | | | | | | | | | If we are passed a fakevartree object, it should already be sync'd, so there is no need to sync it again here. This sync is only needed when we create a new FakeVartree, so I moved the sync to the right place to fix this. BUG=chromium-os:14035 TEST=Build a bunch of packages with this patch. Change-Id: I89d79cf946f4c0c27ad585ad7c88a41985260342 Review URL: http://codereview.chromium.org/6813084
* Fix a typo in a comment.Zac Medico2011-04-101-1/+1
|
* Scheduler: add more info in docstring commentsZac Medico2011-04-101-1/+7
| | | | This clarifies the purposes of _system_merge_started and _choose_pkg.
* Scheduler: pkg_to_replace beware old-style virtZac Medico2011-03-261-1/+2
|
* Update Portage to sync BlockerDB at init.David James2011-03-241-17/+7
| | | | | | | | | | | | Currently, Portage syncs the BlockerDB before every merge. This slows down merges considerably because it requires reading the entire vardb from disk. Since Portage doesn't merge conflicting packages anyway, we can optimize this by just reading the vardb at initialization and caching that. Change-Id: I6701926f022ef3aa2da10482fc8b09573ae24610 Review URL: http://codereview.chromium.org/6688037
* Update Scheduler to protect against infinite loopDavid James2011-03-161-4/+2
| | | | | If we have running tasks, but we're not listening to these tasks, we're going to loop forever. So throw an exception in this case.
* Scheduler: tweak prefetcher cancellation logicZac Medico2011-03-161-1/+9
| | | | | This should prevent "TypeError: an integer is required" raised from waitpid when trying to cancel a prefetcher that never started.
* Scheduler: terminate _merge_wait_queueZac Medico2011-03-161-0/+4
|
* Scheduler: fix AttributeError in _terminate_tasksZac Medico2011-03-121-1/+4
| | | | | Thanks to David James <davidjames@google.com> for reporting this error: AttributeError: 'EbuildPhase' object has no attribute 'merge'
* PollScheduler: tweek termination logicZac Medico2011-03-101-4/+4
| | | | | | | | | * PollScheduler and all subclasses now use the _terminated_tasks variable to check whether or not _terminate_tasks() has been called, and behave appropriately in that case. * The _schedule_tasks() method now has documentation about the relationship with _terminate_tasks() and _terminated_tasks.
* Scheduler: avoid infinite loop after CTRL-CZac Medico2011-03-101-1/+14
| | | | | | | | If CTRL-C was received at certain times, it was possible for discarded tasks to be erroneously left in Scheduler._running_tasks, which would cause the main loop to run infinitely. Thanks to David James <davidjames@google.com> for reporting this issue and helping to devise a solution.
* Scheduler: ensure _prefetchers is clearedZac Medico2011-02-201-0/+1
|
* Recognize git-2.eclass when reinstalling self.Zac Medico2011-02-141-1/+2
|
* Scheduler: remove uninstall task from pkg_queuev2.2.0_alpha16Zac Medico2011-01-171-0/+4
|
* Tweak PollScheduler signal handling.Zac Medico2011-01-151-3/+29
|
* Add PollScheduler.terminate() for interruption.Zac Medico2011-01-151-8/+17
| | | | | This allows PollScheduler instances to do basic cleanup and terminate gracefully when SIGINT or SIGTERM signals are received.
* Scheduler: free unneeded uninstall task from memv2.2.0_alpha14Zac Medico2011-01-061-1/+5
|
* Scheduler: handle same cpv with different SLOTZac Medico2011-01-051-0/+3
|