diff options
author | Zac Medico <zmedico@gentoo.org> | 2013-01-03 18:23:42 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2013-01-03 18:23:42 -0800 |
commit | b1637bc9d66bbee3a036dae968ef05aa4d4ac15d (patch) | |
tree | 15668a70acfdd818d64ca3dd204a380c029dd6a9 /pym/portage/package | |
parent | 0fe235cfd0200644c205a7b4aabb1330e7f04402 (diff) | |
download | portage-b1637bc9d66bbee3a036dae968ef05aa4d4ac15d.tar.gz portage-b1637bc9d66bbee3a036dae968ef05aa4d4ac15d.tar.bz2 portage-b1637bc9d66bbee3a036dae968ef05aa4d4ac15d.zip |
portage._internal_caller: use global_event_loop
It's more efficient to use global_event_loop than a local EventLoop
instance, so do that when we know it's safe.
Diffstat (limited to 'pym/portage/package')
-rw-r--r-- | pym/portage/package/ebuild/_spawn_nofetch.py | 6 | ||||
-rw-r--r-- | pym/portage/package/ebuild/doebuild.py | 20 |
2 files changed, 18 insertions, 8 deletions
diff --git a/pym/portage/package/ebuild/_spawn_nofetch.py b/pym/portage/package/ebuild/_spawn_nofetch.py index 151fc2ee4..898eb03a1 100644 --- a/pym/portage/package/ebuild/_spawn_nofetch.py +++ b/pym/portage/package/ebuild/_spawn_nofetch.py @@ -1,4 +1,4 @@ -# Copyright 2010-2012 Gentoo Foundation +# Copyright 2010-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 import tempfile @@ -12,6 +12,7 @@ from portage.package.ebuild.doebuild import doebuild_environment from portage.package.ebuild.prepare_build_dirs import prepare_build_dirs from portage.util._async.SchedulerInterface import SchedulerInterface from portage.util._eventloop.EventLoop import EventLoop +from portage.util._eventloop.global_event_loop import global_event_loop from _emerge.EbuildPhase import EbuildPhase def spawn_nofetch(portdb, ebuild_path, settings=None): @@ -79,7 +80,8 @@ def spawn_nofetch(portdb, ebuild_path, settings=None): prepare_build_dirs(settings=settings) ebuild_phase = EbuildPhase(background=False, phase='nofetch', - scheduler=SchedulerInterface(EventLoop(main=False)), + scheduler=SchedulerInterface(portage._internal_caller and + global_event_loop() or EventLoop(main=False)), settings=settings) ebuild_phase.start() ebuild_phase.wait() diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py index ff7776cce..646faf44b 100644 --- a/pym/portage/package/ebuild/doebuild.py +++ b/pym/portage/package/ebuild/doebuild.py @@ -33,6 +33,7 @@ portage.proxy.lazyimport.lazyimport(globals(), 'portage.util._desktop_entry:validate_desktop_entry', 'portage.util._async.SchedulerInterface:SchedulerInterface', 'portage.util._eventloop.EventLoop:EventLoop', + 'portage.util._eventloop.global_event_loop:global_event_loop', 'portage.util.ExtractKernelVersion:ExtractKernelVersion' ) @@ -141,7 +142,8 @@ def _spawn_phase(phase, settings, actionmap=None, **kwargs): return _doebuild_spawn(phase, settings, actionmap=actionmap, **kwargs) ebuild_phase = EbuildPhase(actionmap=actionmap, background=False, - phase=phase, scheduler=SchedulerInterface(EventLoop(main=False)), + phase=phase, scheduler=SchedulerInterface(portage._internal_caller and + global_event_loop() or EventLoop(main=False)), settings=settings) ebuild_phase.start() ebuild_phase.wait() @@ -699,7 +701,8 @@ def doebuild(myebuild, mydo, _unused=None, settings=None, debug=0, listonly=0, if not returnpid and \ 'PORTAGE_BUILDDIR_LOCKED' not in mysettings: builddir_lock = EbuildBuildDir( - scheduler=EventLoop(main=False), + scheduler=(portage._internal_caller and + global_event_loop() or EventLoop(main=False)), settings=mysettings) builddir_lock.lock() try: @@ -841,7 +844,8 @@ def doebuild(myebuild, mydo, _unused=None, settings=None, debug=0, listonly=0, if builddir_lock is None and \ 'PORTAGE_BUILDDIR_LOCKED' not in mysettings: builddir_lock = EbuildBuildDir( - scheduler=EventLoop(main=False), + scheduler=(portage._internal_caller and + global_event_loop() or EventLoop(main=False)), settings=mysettings) builddir_lock.lock() try: @@ -864,7 +868,8 @@ def doebuild(myebuild, mydo, _unused=None, settings=None, debug=0, listonly=0, if not returnpid and \ 'PORTAGE_BUILDDIR_LOCKED' not in mysettings: builddir_lock = EbuildBuildDir( - scheduler=EventLoop(main=False), + scheduler=(portage._internal_caller and + global_event_loop() or EventLoop(main=False)), settings=mysettings) builddir_lock.lock() mystatus = prepare_build_dirs(myroot, mysettings, cleanup) @@ -1204,7 +1209,9 @@ def _prepare_env_file(settings): """ env_extractor = BinpkgEnvExtractor(background=False, - scheduler=EventLoop(main=False), settings=settings) + scheduler=(portage._internal_caller and + global_event_loop() or EventLoop(main=False)), + settings=settings) if env_extractor.dest_env_exists(): # There are lots of possible states when doebuild() @@ -1476,7 +1483,8 @@ def spawn(mystring, mysettings, debug=0, free=0, droppriv=0, sesandbox=0, fakero proc = EbuildSpawnProcess( background=False, args=mystring, - scheduler=SchedulerInterface(EventLoop(main=False)), + scheduler=SchedulerInterface(portage._internal_caller and + global_event_loop() or EventLoop(main=False)), spawn_func=spawn_func, settings=mysettings, **keywords) |