summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/Scheduler.py
Commit message (Collapse)AuthorAgeFilesLines
* Use IO_* constants where appropriate.Zac Medico2012-02-091-0/+6
|
* PollScheduler: remove _poll_loopZac Medico2012-02-081-8/+5
| | | | | We can use iteration() instead, and _poll_loop's exit behavior doesn't seem practical to emulate with glib.MainLoop.
* Scheduler: tweak _add_prefetchersZac Medico2012-02-081-8/+6
| | | | | Since commit 4620d6aba1c5c10344e311585516ee43819b703c, the first prefetcher is started as soon as it's added to the task queue.
* SequentialTaskQueue: schedule automaticallyZac Medico2012-02-081-7/+7
| | | | | | | This is needed to compensate for the removal of _idle_schedule in commit 8c1fcf5a9ba9fa4d406a4d0cc284fe73a84f5a63, so that the Scheduler's task queues operate without needing their schedule methods called inside Scheduler._schedule_tasks().
* Scheduler: remove _idle_scheduleZac Medico2012-02-081-5/+0
| | | | | This shouldn't be needed, since _schedule() should already be called automatically when there are any relevant state changes.
* EventLoop: use same method names as glibZac Medico2012-02-081-7/+7
|
* PollScheduler: don't inherit EventLoopZac Medico2012-02-081-12/+12
|
* PollScheduler: remove _schedule_waitZac Medico2012-02-071-1/+1
|
* PollScheduler: add iteration methodZac Medico2012-02-071-3/+3
|
* Scheduler: use idle_add, not _poll overrideZac Medico2012-02-071-2/+4
|
* PollScheduler: glib.io_add_watch() compatibilityZac Medico2012-02-071-0/+1
|
* PollScheduler: timeouts regardless of IO eventsZac Medico2012-02-071-43/+3
| | | | | | Now PollScheduler will execute timeouts predictably, even when there no IO events being generated. This allows the Scheduler's display updates to be handled via timeout_add.
* PollScheduler: add timeout_add like glib'sZac Medico2012-02-071-4/+4
| | | | | This will be useful as a substitute for recursion, in order to avoid hitting the recursion limit for bug #402335.
* Display EROOT when ROOT != "/".Zac Medico2011-12-191-4/+4
| | | | | | | Since commit a715b65f7bd36409c1283e6911265d1f4405ab7a, the Package.root and RootConfig.root attributes refer to EROOT instead of ROOT. Therefore, adjust display code so that EROOT is only displayed when ROOT != "/".
* _run_pkg_pretend: doebuild_environment for cleanZac Medico2011-12-181-0/+14
|
* emerge: disable --quiet-build by defaultZac Medico2011-12-131-1/+1
| | | | | | | | | This reverts the behavior change from commit 0cc174b6fc28feb26ea151d76f794e0ff2c2fa39, since Gentoo's council has voted to revert it in their 20111213 meeting, as requested on the gentoo-project mailing list: http://archives.gentoo.org/gentoo-project/msg_4e282bb4e6ac2611de2a39171a803c48.xml
* Schduler: _check_temp_dir in _handle_self_updateZac Medico2011-11-181-2/+9
|
* 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