portage.git
12 years agoRemove FEATURES=preserve-libs config/docs.
Zac Medico [Fri, 3 Jun 2011 12:15:50 +0000 (05:15 -0700)]
Remove FEATURES=preserve-libs config/docs.

Support for FEATURES=preserve-libs is disabled in the stable branch.

12 years agoportage.const: toggle constants for stable branch
Zac Medico [Sat, 4 Feb 2012 15:01:47 +0000 (07:01 -0800)]
portage.const: toggle constants for stable branch

_ENABLE_DYN_LINK_MAP    = False
_ENABLE_PRESERVE_LIBS   = False
_ENABLE_REPO_NAME_WARN  = False
_ENABLE_SET_CONFIG      = False

12 years agoUnmerge orphan directory symlinks for bug 384397. v2.2.0_alpha89
Zac Medico [Thu, 23 Feb 2012 05:30:19 +0000 (21:30 -0800)]
Unmerge orphan directory symlinks for bug 384397.

12 years agodblink: split out _unmerge_dirs method
Zac Medico [Thu, 23 Feb 2012 03:07:11 +0000 (19:07 -0800)]
dblink: split out _unmerge_dirs method

This code will need to be called twice when safely unmerging symlinks
to directories (bug #384397).

12 years agoecompressdir: handle abs symlink, bug #405327
Zac Medico [Wed, 22 Feb 2012 20:50:48 +0000 (12:50 -0800)]
ecompressdir: handle abs symlink, bug #405327

12 years agoScheduler: hang in _schedule_tasks, bug 404995 v2.2.0_alpha88
Zac Medico [Mon, 20 Feb 2012 11:01:12 +0000 (03:01 -0800)]
Scheduler: hang in _schedule_tasks, bug 404995

This is triggered whenever emerge bails out while parallel-fetch is
running in the background.

12 years ago_eventloop: use explicit relative imports v2.2.0_alpha87
Zac Medico [Sat, 18 Feb 2012 04:03:41 +0000 (20:03 -0800)]
_eventloop: use explicit relative imports

12 years agoMtimeDB: add JSON read/write
Zac Medico [Sat, 18 Feb 2012 03:40:03 +0000 (19:40 -0800)]
MtimeDB: add JSON read/write

Support serialization as JSON instead of pickle, so that
/var/cache/edb/mtimedb is human readable/writable, for those rare
cases where it may be useful. Currently, pickle is still used for
writes. The plan is to migrate to JSON after JSON read has been
supported for some time.

12 years agoMtimeDB._load: explicitly close file
Zac Medico [Sat, 18 Feb 2012 02:41:27 +0000 (18:41 -0800)]
MtimeDB._load: explicitly close file

12 years agoPreservedLibsRegistry: add JSON read/write
Zac Medico [Sat, 18 Feb 2012 02:01:27 +0000 (18:01 -0800)]
PreservedLibsRegistry: add JSON read/write

Support serialization as JSON instead of pickle, so that
/var/lib/portage/preserved_libs_registry is human readable/writable,
for those rare cases where it may be useful. Currently, pickle is still
used for writes. The plan is to migrate to JSON after JSON read has
been supported for some time.

12 years agorepoman: make virtual.oldstyle an error
Zac Medico [Fri, 17 Feb 2012 23:56:56 +0000 (15:56 -0800)]
repoman: make virtual.oldstyle an error

Also, add "allow-provide-virtuals = true" setting for
metadata/layout.conf which reduces it to a warning.

12 years agoportage.5: layout.conf manifest-hashes example
Zac Medico [Fri, 17 Feb 2012 23:33:35 +0000 (15:33 -0800)]
portage.5: layout.conf manifest-hashes example

12 years agoPollSelectAdapter: don't inherit PollConstants
Zac Medico [Fri, 17 Feb 2012 23:23:39 +0000 (15:23 -0800)]
PollSelectAdapter: don't inherit PollConstants

12 years agoMove Poll{Constants,SelectAdapter} to _eventloop.
Zac Medico [Fri, 17 Feb 2012 22:56:21 +0000 (14:56 -0800)]
Move Poll{Constants,SelectAdapter} to _eventloop.

12 years agoMove _emerge.SlotObject to portage.util.
Zac Medico [Fri, 17 Feb 2012 22:49:36 +0000 (14:49 -0800)]
Move _emerge.SlotObject to portage.util.

12 years agoSlotObject: validate __slots__ and keyword args
Zac Medico [Fri, 17 Feb 2012 22:31:37 +0000 (14:31 -0800)]
SlotObject: validate __slots__ and keyword args

12 years agoRemove redundant inherited __slots__ values.
Zac Medico [Fri, 17 Feb 2012 22:18:05 +0000 (14:18 -0800)]
Remove redundant inherited __slots__ values.

12 years agoEventLoop: fix _io_handler_class "f" attribute
Zac Medico [Fri, 17 Feb 2012 22:16:59 +0000 (14:16 -0800)]
EventLoop: fix _io_handler_class "f" attribute

12 years agoportage.package.ebuild.fetch.fetch(): Fix ResourceWarning with Python 3.2.
Arfrever Frehtes Taifersar Arahesis [Fri, 17 Feb 2012 21:33:13 +0000 (22:33 +0100)]
portage.package.ebuild.fetch.fetch(): Fix ResourceWarning with Python 3.2.

12 years agoEventLoop.iteration: run timeouts last
Zac Medico [Fri, 17 Feb 2012 10:20:35 +0000 (02:20 -0800)]
EventLoop.iteration: run timeouts last

Run timeouts last, in order to minimize latency in termination of
iteration loops that they may control.

12 years agoSubProcess._waitpid_cb: fix args for glib compat
Zac Medico [Fri, 17 Feb 2012 10:04:28 +0000 (02:04 -0800)]
SubProcess._waitpid_cb: fix args for glib compat

12 years agoEventLoop: prune obsolete code
Zac Medico [Fri, 17 Feb 2012 09:29:15 +0000 (01:29 -0800)]
EventLoop: prune obsolete code

12 years agoEventLoop.iteration: poll for blocking, not sleep
Zac Medico [Fri, 17 Feb 2012 06:29:17 +0000 (22:29 -0800)]
EventLoop.iteration: poll for blocking, not sleep

The effect is be mostly the same, but it's more conistent to use
_do_poll for all blocking, plus it has EINTR handling.

12 years agoEventLoop.child_watch_add: dynamic IO watch
Zac Medico [Fri, 17 Feb 2012 06:03:30 +0000 (22:03 -0800)]
EventLoop.child_watch_add: dynamic IO watch

The IO watch is dynamically registered and unregistered as needed,
since we don't want to consider it as a valid source of events when
there are no child listeners. It's important to distinguish when there
are no valid sources of IO events, in order to avoid an endless poll
call if there's no timeout. This fixes possbible endless poll calls
since commit 1979a6cdfcd8c6bae4565982d82d862be07ba5be.

12 years agoEventLoop: wakeup poll loop to receive sigchild
Zac Medico [Fri, 17 Feb 2012 03:08:07 +0000 (19:08 -0800)]
EventLoop: wakeup poll loop to receive sigchild

TODO: Find out why SIGCHLD signals aren't delivered during poll calls,
forcing us to wakeup in order to receive them. This fixes random hangs
in poll calls since commit 1979a6cdfcd8c6bae4565982d82d862be07ba5be.

12 years agoEventLoop: fix signal race in _sigchld_init
Zac Medico [Thu, 16 Feb 2012 21:42:59 +0000 (13:42 -0800)]
EventLoop: fix signal race in _sigchld_init

12 years agoEventLoop: fix _sigchld_io_cb to return True
Zac Medico [Thu, 16 Feb 2012 21:35:23 +0000 (13:35 -0800)]
EventLoop: fix _sigchld_io_cb to return True

This fixes an infinite loop since commit
1979a6cdfcd8c6bae4565982d82d862be07ba5be.

12 years agoSubProcess: use child_watch_add
Zac Medico [Thu, 16 Feb 2012 20:58:29 +0000 (12:58 -0800)]
SubProcess: use child_watch_add

This fixes performance issues introduced by commit
9c664779a16f6cbca8a5ffe7f6b0c68572819723.

12 years agoEventLoop: implement child_watch_add
Zac Medico [Thu, 16 Feb 2012 20:56:50 +0000 (12:56 -0800)]
EventLoop: implement child_watch_add

12 years agoportage.update.fixdbentries(): Fix ResourceWarnings with Python 3.2.
Arfrever Frehtes Taifersar Arahesis [Thu, 16 Feb 2012 19:43:00 +0000 (20:43 +0100)]
portage.update.fixdbentries(): Fix ResourceWarnings with Python 3.2.

12 years agoSubProcess: use non-blocking waitpid
Zac Medico [Thu, 16 Feb 2012 05:13:38 +0000 (21:13 -0800)]
SubProcess: use non-blocking waitpid

This ensures that the EventLoop will not stop due to a waitpid call
blocking forever.

12 years agoEventLoop.iteration: sleep if no IO handlers
Zac Medico [Thu, 16 Feb 2012 04:58:10 +0000 (20:58 -0800)]
EventLoop.iteration: sleep if no IO handlers

Sleep so that we don't waste cpu time by looping too quickly. This
makes EventLoop useful for code that needs to wait for timeout
callbacks regardless of whether or not any IO handlers are currently
registered.

12 years agoEventLoop.timeout_add: fix inverted min interval
Zac Medico [Thu, 16 Feb 2012 04:41:16 +0000 (20:41 -0800)]
EventLoop.timeout_add: fix inverted min interval

12 years agoComment about _setup_pipes / PyPy GC interaction.
Zac Medico [Thu, 16 Feb 2012 00:33:10 +0000 (16:33 -0800)]
Comment about _setup_pipes / PyPy GC interaction.

12 years agoSpawnProcess: use os.open for /dev/null input
Zac Medico [Thu, 16 Feb 2012 00:25:31 +0000 (16:25 -0800)]
SpawnProcess: use os.open for /dev/null input

12 years agoMergeProcess: inherit stdin for use with pdb
Zac Medico [Wed, 15 Feb 2012 22:28:41 +0000 (14:28 -0800)]
MergeProcess: inherit stdin for use with pdb

12 years agotreewalk: handle EAGAIN from listdir for PyPy 1.8
Zac Medico [Wed, 15 Feb 2012 22:17:38 +0000 (14:17 -0800)]
treewalk: handle EAGAIN from listdir for PyPy 1.8

12 years agoget_open_fds: handle EAGAIN for PyPy 1.8
Zac Medico [Wed, 15 Feb 2012 09:32:40 +0000 (01:32 -0800)]
get_open_fds: handle EAGAIN for PyPy 1.8

12 years agoScheduler: PyPy WeakValueDictionary.pop KeyError
Zac Medico [Wed, 15 Feb 2012 03:01:16 +0000 (19:01 -0800)]
Scheduler: PyPy WeakValueDictionary.pop KeyError

KeyError observed from WeakValueDictionary.pop() with PyPy 1.8,
despite None given as default. Note that PyPy 1.8 has the same
WeakValueDictionary code as CPython 2.7, so it may be possible for
CPython to raise KeyError here as well.

12 years agoSpawnProcess: for stdout use os.write, not fdopen
Zac Medico [Wed, 15 Feb 2012 01:17:04 +0000 (17:17 -0800)]
SpawnProcess: for stdout use os.write, not fdopen

12 years agorepoman: fix ebuild.badheader for bug #403705
Zac Medico [Wed, 15 Feb 2012 00:04:34 +0000 (16:04 -0800)]
repoman: fix ebuild.badheader for bug #403705

12 years agoSubProcess._wait: add debug code for bug #403697
Zac Medico [Tue, 14 Feb 2012 23:51:22 +0000 (15:51 -0800)]
SubProcess._wait: add debug code for bug #403697

12 years agoAssert that fork returns int for bug 403697.
Zac Medico [Tue, 14 Feb 2012 23:39:57 +0000 (15:39 -0800)]
Assert that fork returns int for bug 403697.

These cases should have been included with commit
6a94a074aa0475173a51f3f726377d4c407e986b.

12 years agoAsynchronousTask: skip cancelled check in _start
Zac Medico [Tue, 14 Feb 2012 23:25:21 +0000 (15:25 -0800)]
AsynchronousTask: skip cancelled check in _start

These checks should be irrelevant, since the cancel() method is never
called on anything that hasn't been started already.

12 years agoEventLoop: allow IO event handler re-entrance
Zac Medico [Tue, 14 Feb 2012 16:27:01 +0000 (08:27 -0800)]
EventLoop: allow IO event handler re-entrance

IO event handlers may be re-entrant, in case something like
AbstractPollTask._wait_loop(), needs to be called inside a handler for
some reason.

12 years agoAfter python fork, don't close fds for PyPy 1.8.
Zac Medico [Tue, 14 Feb 2012 12:29:02 +0000 (04:29 -0800)]
After python fork, don't close fds for PyPy 1.8.

If we close all open file descriptors after a fork, with PyPy 1.8 it
triggers "[Errno 9] Bad file descriptor" later in the subprocess.
Apparently it is holding references to file descriptors and closing
them after they've already been closed and re-opened for other
purposes. As a workaround, we don't close the file descriptors, so
that they won't be re-used and therefore we won't be vulnerable to this
kind of interference.

The obvious caveat of not closing the fds is that the subprocess can
hold locks that belonged to the parent process, even after the parent
process has released the locks. Hopefully this won't be a major problem
though, since the subprocess has to exit at release the lock
eventually, when the EbuildFetcher or _MergeProcess task is complete.

12 years agoEventLoop._do_poll: tweak EINTR handling
Zac Medico [Tue, 14 Feb 2012 03:06:29 +0000 (19:06 -0800)]
EventLoop._do_poll: tweak EINTR handling

Silently handle EINTR, which is normal when we have received a signal
such as SIGINT. Also, raise StopIteration in order to break out of our
current iteration and respond appropriately to the signal as soon as
possible.

12 years agoAsynchronousTask: don't wait for exit status
Zac Medico [Tue, 14 Feb 2012 02:35:03 +0000 (18:35 -0800)]
AsynchronousTask: don't wait for exit status

Synchronous waiting for status is not supported, since it would be
vulnerable to hitting the recursion limit when a large number of tasks
need to be terminated simultaneously, like in bug #402335.

12 years agoEventLoop: make _poll/_run_timeouts re-entrant
Zac Medico [Tue, 14 Feb 2012 01:22:56 +0000 (17:22 -0800)]
EventLoop: make _poll/_run_timeouts re-entrant

This fixes infinite loops triggered by Ctrl-C, where timeout calls
would exhaust the poll event queue because _poll was not re-entrant.
Now, re-entrance is only prohibited for individual callback functions,
in order to protect against infinite recursion.

12 years agoruntests.sh: test PyPy 1.8, and support prefix
Zac Medico [Tue, 14 Feb 2012 00:41:38 +0000 (16:41 -0800)]
runtests.sh: test PyPy 1.8, and support prefix

12 years agoHandle missing os.setgroups for PyPy.
Zac Medico [Mon, 13 Feb 2012 23:38:41 +0000 (15:38 -0800)]
Handle missing os.setgroups for PyPy.

See https://bugs.pypy.org/issue833 for details.

12 years agochecksum.py: remove PyPy 1.7 workarounds
Zac Medico [Mon, 13 Feb 2012 21:57:31 +0000 (13:57 -0800)]
checksum.py: remove PyPy 1.7 workarounds

The corresponding hashlib issues are fixed in PyPy 1.8:

https://bugs.pypy.org/issue957

12 years agoPollScheduler: use idle_add to check termination
Zac Medico [Mon, 13 Feb 2012 06:43:46 +0000 (22:43 -0800)]
PollScheduler: use idle_add to check termination

This fixes a regression in termination signal handling since commit
8c1fcf5a9ba9fa4d406a4d0cc284fe73a84f5a63, which cause termination
signals to be ignored until a running job had exited. This regression
is not really noticeable for Ctrl-C handling, since in that case the
SIGINT propagets to subprocesses, causing them to exit and trigger a
_schedule() call whichtriggers a termination check.

12 years agorepoman: check for env-update, bug #402339
Zac Medico [Sun, 12 Feb 2012 23:32:12 +0000 (15:32 -0800)]
repoman: check for env-update, bug #402339

12 years agoScheduler: simplify _sched_iface construction v2.2.0_alpha86
Zac Medico [Sun, 12 Feb 2012 06:16:57 +0000 (22:16 -0800)]
Scheduler: simplify _sched_iface construction

12 years agoEbuildIpcDaemon: handle POLLHUP, bug #401919
Zac Medico [Sun, 12 Feb 2012 05:36:18 +0000 (21:36 -0800)]
EbuildIpcDaemon: handle POLLHUP, bug #401919

12 years agoAbstractPollTask: merge _wait from subclass
Zac Medico [Sun, 12 Feb 2012 04:08:59 +0000 (20:08 -0800)]
AbstractPollTask: merge _wait from subclass

12 years agoxpak.unpackinfo: validate paths, bug #403149
Zac Medico [Sun, 12 Feb 2012 03:39:10 +0000 (19:39 -0800)]
xpak.unpackinfo: validate paths, bug #403149

12 years agoQueueScheduler: tweak run loop logic
Zac Medico [Sun, 12 Feb 2012 00:05:14 +0000 (16:05 -0800)]
QueueScheduler: tweak run loop logic

12 years agoEventLoop.iteration: handle _poll StopIteration
Zac Medico [Sat, 11 Feb 2012 23:56:07 +0000 (15:56 -0800)]
EventLoop.iteration: handle _poll StopIteration

12 years agoMetadataRegen: use porttrees
Zac Medico [Sat, 11 Feb 2012 23:01:55 +0000 (15:01 -0800)]
MetadataRegen: use porttrees

12 years ago_emerge.MetadataRegen.MetadataRegen._iter_metadata_processes():
Arfrever Frehtes Taifersar Arahesis [Sat, 11 Feb 2012 22:14:43 +0000 (23:14 +0100)]
_emerge.MetadataRegen.MetadataRegen._iter_metadata_processes():
Regenerate metadata for given cpv in each repository.

12 years agoEventLoop: remove obsolete timeout_add comment
Zac Medico [Sat, 11 Feb 2012 21:41:18 +0000 (13:41 -0800)]
EventLoop: remove obsolete timeout_add comment

12 years agoEventLoop.iteration: run timeouts if no fds
Zac Medico [Sat, 11 Feb 2012 21:11:10 +0000 (13:11 -0800)]
EventLoop.iteration: run timeouts if no fds

12 years agoPollScheduler: return None from _schedule_tasks
Zac Medico [Sat, 11 Feb 2012 20:05:17 +0000 (12:05 -0800)]
PollScheduler: return None from _schedule_tasks

The _keep_scheduling() template method is used instead.

12 years agoQueueScheduler: timeout compat for GlibEventLoop
Zac Medico [Sat, 11 Feb 2012 19:48:05 +0000 (11:48 -0800)]
QueueScheduler: timeout compat for GlibEventLoop

Raising StopIteration doesn't work with GlibEventLoop, since it catches
all exceptions and logs them. So, just use a boolean expression to
terminate the while loop. This depends on commit
dcb9fab8463996542d06d29bc383f5933bf0d677 so that IpcDaemonTestCase
timeouts work correctly with both EventLoop and GlibEventLoop.

12 years agoEventLoop: shorten iteration poll if timeouts
Zac Medico [Sat, 11 Feb 2012 19:34:36 +0000 (11:34 -0800)]
EventLoop: shorten iteration poll if timeouts

This fixes EventLoop.iteration() so that it doesn't poll too long when
there are timeouts registered, since it's not nice to spend a long time
polling for an IO event that might never arrive even though a timeout
may have changed some state that would terminate a timeout loop like
in QueueScheduler.run() or AbstractPollTask._wait_loop(). This makes
EventLoop.iteration() behave more like GlibEventLoop.iteration().

12 years agoFix FEATURES=no{doc,info,man} for bug #403181
Zac Medico [Sat, 11 Feb 2012 18:46:00 +0000 (10:46 -0800)]
Fix FEATURES=no{doc,info,man} for bug #403181

This has been broken since commit
93b654199a32fc3df1299b030317720b9294b0c3.

12 years agorepoman: no ChangeLog for Manifest-only commit
Zac Medico [Sat, 11 Feb 2012 05:42:57 +0000 (21:42 -0800)]
repoman: no ChangeLog for Manifest-only commit

Use --echangelog=force to force ChangeLog generation in this case.
See bug #398009.

12 years agodisplay_autounmask: highlight config changes
Zac Medico [Sat, 11 Feb 2012 03:18:57 +0000 (19:18 -0800)]
display_autounmask: highlight config changes

As suggested here:

http://archives.gentoo.org/gentoo-dev/msg_06a47ad55977f4d16bfe18769c6c38b8.xml

12 years agoGlibEventLoop: use gi.repository.GLib
Zac Medico [Sat, 11 Feb 2012 02:55:19 +0000 (18:55 -0800)]
GlibEventLoop: use gi.repository.GLib

12 years agoPollScheduler: add generic _main_loop()
Zac Medico [Sat, 11 Feb 2012 02:10:07 +0000 (18:10 -0800)]
PollScheduler: add generic _main_loop()

12 years agorepoman: support PORTAGE_CONFIGROOT, bug 402577
Zac Medico [Fri, 10 Feb 2012 23:19:06 +0000 (15:19 -0800)]
repoman: support PORTAGE_CONFIGROOT, bug 402577

12 years agorepoman: remove redundant config constructor
Zac Medico [Fri, 10 Feb 2012 23:13:49 +0000 (15:13 -0800)]
repoman: remove redundant config constructor

12 years agoScheduler: cleanup timeout after _main_loop
Zac Medico [Fri, 10 Feb 2012 21:58:17 +0000 (13:58 -0800)]
Scheduler: cleanup timeout after _main_loop

The way we don't leave an leak a reference to the Scheduler instance
in the global EventLoop instance.

12 years agoEbuildMerge: add exit_hook to unlock build dir
Zac Medico [Fri, 10 Feb 2012 19:47:38 +0000 (11:47 -0800)]
EbuildMerge: add exit_hook to unlock build dir

This is needed since commit 7a6c34cc6bd6eb20a97e05347f87a0157f4ae58a in
order to ensure that the build dir is unlocked before exit listeners
are called. It fixes failures in catalyst stage 1 builds where two
instances of the same package, built sequentially for separate roots,
interfere with eachother's build dir lock.

12 years agoUse IO_* constants where appropriate.
Zac Medico [Fri, 10 Feb 2012 01:27:13 +0000 (17:27 -0800)]
Use IO_* constants where appropriate.

12 years agoEventLoop: name poll constants like glib's
Zac Medico [Fri, 10 Feb 2012 00:41:14 +0000 (16:41 -0800)]
EventLoop: name poll constants like glib's

It's conceivable the constants could be implementation dependent, so
use glib's generic IO_* names rather than the POLL* names which are
associated specifically with python's select.poll object.

12 years agoEventLoop: inherit PollConstants
Zac Medico [Fri, 10 Feb 2012 00:20:31 +0000 (16:20 -0800)]
EventLoop: inherit PollConstants

12 years agoAdd global_event_loop() and GlibEventLoop.
Zac Medico [Thu, 9 Feb 2012 20:04:42 +0000 (12:04 -0800)]
Add global_event_loop() and GlibEventLoop.

This causes all PollScheduler instances within a given process to share
a singleton EventLoop instance, and also makes it possible to swap in
glib's main loop for all portage event loops in the main process.

12 years agoAsynchronousTask: exit listeners reverse order
Zac Medico [Thu, 9 Feb 2012 09:12:40 +0000 (01:12 -0800)]
AsynchronousTask: exit listeners reverse order

This should fix a Scheduler hang which is triggered when that merge
queue, a SequentialTaskQueue, doesn't decrement its merge count until
after other exit listeners have already run.

12 years agoQueueScheduler: fix for IpcDaemonTestCase
Zac Medico [Thu, 9 Feb 2012 08:21:24 +0000 (00:21 -0800)]
QueueScheduler: fix for IpcDaemonTestCase

Use a StopIteration exception to jump out of EventLoop.iterate()
before the poll loop.

12 years agoEventLoop: fix inverted may_block logic
Zac Medico [Thu, 9 Feb 2012 07:25:09 +0000 (23:25 -0800)]
EventLoop: fix inverted may_block logic

This caused emerge to consume 100% cpu.

12 years agoMove EventLoop to a separate file.
Zac Medico [Thu, 9 Feb 2012 06:45:14 +0000 (22:45 -0800)]
Move EventLoop to a separate file.

12 years agoUse AbstractPollTask._wait_loop() more.
Zac Medico [Thu, 9 Feb 2012 06:23:32 +0000 (22:23 -0800)]
Use AbstractPollTask._wait_loop() more.

12 years agoMergeProcess: handle POLLHUP from elog pipe
Zac Medico [Thu, 9 Feb 2012 05:17:18 +0000 (21:17 -0800)]
MergeProcess: handle POLLHUP from elog pipe

12 years agoPollScheduler: remove _poll_loop
Zac Medico [Thu, 9 Feb 2012 04:04:09 +0000 (20:04 -0800)]
PollScheduler: remove _poll_loop

We can use iteration() instead, and _poll_loop's exit behavior doesn't
seem practical to emulate with glib.MainLoop.

12 years agotest_poll: use TaskScheduler
Zac Medico [Thu, 9 Feb 2012 03:51:24 +0000 (19:51 -0800)]
test_poll: use TaskScheduler

12 years agoPollScheduler: remove EventLoop._schedule hook
Zac Medico [Thu, 9 Feb 2012 02:10:38 +0000 (18:10 -0800)]
PollScheduler: remove EventLoop._schedule hook

PollScheduler and subclasses be should already be calling
self._schedule() when necessary.

12 years agoScheduler: tweak _add_prefetchers
Zac Medico [Thu, 9 Feb 2012 01:58:28 +0000 (17:58 -0800)]
Scheduler: tweak _add_prefetchers

Since commit 4620d6aba1c5c10344e311585516ee43819b703c, the first
prefetcher is started as soon as it's added to the task queue.

12 years agoSequentialTaskQueue: use finally for _scheduling
Zac Medico [Thu, 9 Feb 2012 01:49:56 +0000 (17:49 -0800)]
SequentialTaskQueue: use finally for _scheduling

Also, remove unecessary _dirty flag.

12 years agoIpcDaemonTestCase: init start_time earlier
Zac Medico [Thu, 9 Feb 2012 00:46:02 +0000 (16:46 -0800)]
IpcDaemonTestCase: init start_time earlier

Since commit 4620d6aba1c5c10344e311585516ee43819b703c, the
SequentialTaskQueue.add() method starts the task immediately, so
initialize start_time before that happens.

12 years agoSequentialTaskQueue: schedule automatically
Zac Medico [Thu, 9 Feb 2012 00:33:14 +0000 (16:33 -0800)]
SequentialTaskQueue: schedule automatically

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().

12 years agoScheduler: remove _idle_schedule
Zac Medico [Wed, 8 Feb 2012 23:43:50 +0000 (15:43 -0800)]
Scheduler: remove _idle_schedule

This shouldn't be needed, since _schedule() should already be called
automatically when there are any relevant state changes.

12 years agoEventLoop: use same method names as glib
Zac Medico [Wed, 8 Feb 2012 21:20:06 +0000 (13:20 -0800)]
EventLoop: use same method names as glib

12 years agoPollScheduler: don't inherit EventLoop
Zac Medico [Wed, 8 Feb 2012 21:04:33 +0000 (13:04 -0800)]
PollScheduler: don't inherit EventLoop

12 years agoPollScheduler: split out EventLoop base class
Zac Medico [Wed, 8 Feb 2012 20:24:22 +0000 (12:24 -0800)]
PollScheduler: split out EventLoop base class

12 years agorepoman: make SRC_URI.mirror fatal
Zac Medico [Wed, 8 Feb 2012 16:38:27 +0000 (08:38 -0800)]
repoman: make SRC_URI.mirror fatal

Thanks to Christian Ruppert <idl0r@gentoo.org> for the suggestion.

12 years agorepoman: normalize thirdpartymirrors trailing /
Zac Medico [Wed, 8 Feb 2012 16:35:50 +0000 (08:35 -0800)]
repoman: normalize thirdpartymirrors trailing /

12 years agoAbstractPollTask: use timeout_add
Zac Medico [Wed, 8 Feb 2012 05:16:51 +0000 (21:16 -0800)]
AbstractPollTask: use timeout_add