From e9ea4bc74f16e6c120fdf9c1926dfcb7de7bd135 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 5 Oct 2012 22:20:07 -0700 Subject: Substitute EventLoop for PollScheduler. EventLoop suffices for all of these cases. EventLoop(main=False) is used for thread safety where API consumers may be using threads. --- pym/portage/dbapi/_MergeProcess.py | 8 +------- pym/portage/dbapi/porttree.py | 6 +++--- pym/portage/dbapi/vartree.py | 3 ++- 3 files changed, 6 insertions(+), 11 deletions(-) (limited to 'pym/portage/dbapi') diff --git a/pym/portage/dbapi/_MergeProcess.py b/pym/portage/dbapi/_MergeProcess.py index 469ba0b3a..bb607d37f 100644 --- a/pym/portage/dbapi/_MergeProcess.py +++ b/pym/portage/dbapi/_MergeProcess.py @@ -116,8 +116,7 @@ class MergeProcess(ForkProcess): blockers = self.blockers() mylink = portage.dblink(self.mycat, self.mypkg, settings=self.settings, treetype=self.treetype, vartree=self.vartree, - blockers=blockers, scheduler=self.scheduler, - pipe=elog_writer_fd) + blockers=blockers, pipe=elog_writer_fd) fd_pipes[elog_writer_fd] = elog_writer_fd self._elog_reg_id = self.scheduler.io_add_watch(elog_reader_fd, self._registered_events, self._elog_output_handler) @@ -166,11 +165,6 @@ class MergeProcess(ForkProcess): portage.output.havecolor = self.settings.get('NOCOLOR') \ not in ('yes', 'true') - # In this subprocess we want mylink._display_merge() to use - # stdout/stderr directly since they are pipes. This behavior - # is triggered when mylink._scheduler is None. - mylink._scheduler = None - # Avoid wastful updates of the vdb cache. self.vartree.dbapi._flush_cache_enabled = False diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py index b1a81b271..dba0ef53d 100644 --- a/pym/portage/dbapi/porttree.py +++ b/pym/portage/dbapi/porttree.py @@ -33,8 +33,8 @@ from portage import os from portage import _encodings from portage import _unicode_encode from portage import OrderedDict +from portage.util._eventloop.EventLoop import EventLoop from _emerge.EbuildMetadataPhase import EbuildMetadataPhase -from _emerge.PollScheduler import PollScheduler import os as _os import sys @@ -96,7 +96,7 @@ class portdbapi(dbapi): # this purpose because doebuild makes many changes to the config # instance that is passed in. self.doebuild_settings = config(clone=self.settings) - self._scheduler = PollScheduler().sched_iface + self._event_loop = EventLoop(main=False) self.depcachedir = os.path.realpath(self.settings.depcachedir) if os.environ.get("SANDBOX_ON") == "1": @@ -448,7 +448,7 @@ class portdbapi(dbapi): proc = EbuildMetadataPhase(cpv=mycpv, ebuild_hash=ebuild_hash, portdb=self, - repo_path=mylocation, scheduler=self._scheduler, + repo_path=mylocation, scheduler=self._event_loop, settings=self.doebuild_settings) proc.start() diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 5299b298f..f00a87ad2 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -32,6 +32,7 @@ portage.proxy.lazyimport.lazyimport(globals(), 'portage.util.movefile:movefile', 'portage.util._dyn_libs.PreservedLibsRegistry:PreservedLibsRegistry', 'portage.util._dyn_libs.LinkageMapELF:LinkageMapELF@LinkageMap', + 'portage.util._eventloop.EventLoop:EventLoop', 'portage.versions:best,catpkgsplit,catsplit,cpv_getkey,vercmp,' + \ '_pkgsplit@pkgsplit,_pkg_str', 'subprocess', @@ -4814,7 +4815,7 @@ def merge(mycat, mypkg, pkgloc, infloc, merge_task = MergeProcess( mycat=mycat, mypkg=mypkg, settings=settings, treetype=mytree, vartree=vartree, - scheduler=(scheduler or PollScheduler().sched_iface), + scheduler=(scheduler or EventLoop(main=False)), background=background, blockers=blockers, pkgloc=pkgloc, infloc=infloc, myebuild=myebuild, mydbapi=mydbapi, prev_mtimes=prev_mtimes, logfile=settings.get('PORTAGE_LOG_FILE')) -- cgit v1.2.3-1-g7c22